即使我的文件存在,也找不到文件错误

时间:2014-06-07 03:59:16

标签: java exception bufferedreader filenotfoundexception

我正在课堂上阅读一份文件。但是,当我编译它时,fileNotFound错误。 (不显示此类文件或目录)。我不明白为什么会这样,因为我的文件和我的程序在同一文件夹中。我也尝试将我的扩展名更改为.dat,但错误仍然显示。这是我的代码:

try {
    BufferedReader reader = new BufferedReader(new FileReader("measurements.txt"));
    String line = null;

    while ((line = reader.readLine()) != null) {
        .... // continues      
    }
}
catch (FileNotFoundException e) {
    System.out.println("Error!\nFile not found.");
    System.out.println(e);
}
catch(Exception e) {
    System.out.println("Error ");
}

4 个答案:

答案 0 :(得分:0)

您需要在以下行中提供文件的绝对路径。文件阅读器需要绝对路径来读取文件。

 BufferedReader reader = new BufferedReader(new FileReader("measurements.txt"));

但是,从相对路径读取文件还有其他一些替代方法,例如,如果您在src / classes文件夹中创建了文件,那么您可以按如下方式读取该文件。

 BufferedReader reader = new BufferedReader(
    new InputStreamReader(
        Level.class.getClassLoader().getResourceAsStream("measurements.txt")
    )
);

答案 1 :(得分:0)

尝试提供类似于Windows C的绝对路径:/somefolder/measurements.txt或linux /home/user/measurements.txt

BufferedReader reader = new BufferedReader(new FileReader("/home/user/measurements.txt"));

它会起作用......

当你提供相对路径它应该工作但我怀疑你从你正在阅读的java文件和文件以外的目录运行你的程序。

答案 2 :(得分:0)

这是因为该文件没有阅读权限。转到文件属性并提供读/写权限 并确保提供文件的绝对路径

答案 3 :(得分:-1)

您是否需要编写完整路径或至少写入相对路径,而不仅仅是文件名?