Java fileinputstream 没有那个文件或目录

Java fileinputstream No such file or directory

我正在尝试学习如何从文本文件中逐行读取。即使我将 txt 文件放在同一个 src 中,控制台始终将错误显示为 - No such file or directory.

public class ddd {

public static void main(String[] args) {
    FileInputStream fis = null;
    BufferedReader reader = null;
    try {
        fis = new FileInputStream("/dd/src/com/dd/input.txt");
        reader = new BufferedReader(new InputStreamReader(fis));
        System.out
                .println("Reading File line by line using BufferedReader");
        String line = reader.readLine();
        while (line != null) {
            System.out.println(line);
            line = reader.readLine();
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    } finally {
        try {
            reader.close();
            fis.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }

    }
}

}

问题大概出在这里:

"/dd/src/com/dd/input.txt"

至少在 Linux 上,这将是 绝对 路径。您可能想要的是相对于项目根目录的路径:

"src/com/dd/input.txt"

或者,如果您将此文件打包到您的程序中,请使用资源流而不是原始 FileInputStream:

InputStream is = ddd.class.getResourceAsStream("input.txt");

您需要使用相对路径,例如"src/com/dd/input.txt"。我试过了,效果很好。

Output

Reading File line by line using BufferedReader
hhhh

我的 input.txthhhh 内容。