访问类路径中给定的文件夹中的文件



我似乎无法理解如何传递文件夹以从类路径中加载文件。它适用于与.class文件位于同一文件夹中的文本文件,或者如果我使用 files/test.txt 而不是 test.txt .我做错了什么?

法典:

import java.io.*;
public class T {
    public static void main(String[] args) {
        String line;
        File f = new File("test.txt");
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(f));
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
            }
        }
    }
}

文件夹和文件:

stuff/T.java
stuff/T.class

某处有一个包含 test.txt 文件的文件夹,我想在类路径中给出该文件。

我正在使用命令 java -cp .../files T 从窗口中命令行中的 stuff 文件夹运行测试。

String dirPath = "/Users/you/folder/";
String fileName = "test.txt";
File directory = new File(dirPath);
File file = new File(directory, fileName);
// Read file now

您可以在任何文件对象上使用 .exists() 来检查它是否存在。

检查File是否为目录,然后在必要时遍历目录的内容。

public class T {
    public static void main(String[] args) {
        File f = new File("stuff");
        if(f.isDirectory()){
            for(File file:f.listFiles()){
                printFileName(file);
            }
        }else{
            printFileName(f);
        }
    }
    private static void printFileName(File f) {
        String line;
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(f));
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
            }
        }
    }
}

如果不确定代码要查找哪个目录,则File输出当前目录。

File file = new File(".");
System.out.println(file.getAbsolutePath());

相关内容

  • 没有找到相关文章

最新更新