【问题标题】:Java fileinputstream No such file or directoryJava fileinputstream 没有这样的文件或目录
【发布时间】:2015-09-25 06:39:45
【问题描述】:

我正在尝试学习如何从文本文件中逐行读取。即使我将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());
        }

    }
}

}

【问题讨论】:

  • 我可能建议使用当前工作目录 System.getProperty("user.dir")) 来找出您当前工作的位置。事实证明,这是我在学习使用文件输入/输出时遇到的最大问题之一。

标签: java file-io bufferedreader


【解决方案1】:

问题大概出在这里:

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

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

"src/com/dd/input.txt"

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

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

【讨论】:

    【解决方案2】:

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

    输出

    Reading File line by line using BufferedReader
    hhhh
    

    我的input.txt 有hhhh 内容。

    【讨论】:

      猜你喜欢
      • 2017-09-11
      • 2018-01-28
      • 2020-08-05
      • 2017-12-14
      • 2018-12-30
      • 1970-01-01
      • 2021-06-24
      • 2015-02-20
      相关资源
      最近更新 更多