Java 文件未找到错误,即使我的文件存在

Java 文件未找到错误,即使我的文件存在,java,exception,bufferedreader,filenotfoundexception,Java,Exception,Bufferedreader,Filenotfoundexception,我正在阅读课堂作业中的一个文件。然而,当我编译它时,fileNotFound出现了错误。(不显示此类文件或目录)。我不明白为什么它会在那里,因为我的文件和我的程序在同一个文件夹中。我还尝试将扩展名更改为.dat,但仍然显示错误。这是我的密码: try { BufferedReader reader = new BufferedReader(new FileReader("measurements.txt")); String line = null; while ((l

我正在阅读课堂作业中的一个文件。然而,当我编译它时,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 ");
}

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

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

 BufferedReader reader = new BufferedReader(new FileReader("measurements.txt"));
但是,从相对路径读取文件还有其他一些方法,例如,如果您在src/classes文件夹中创建了文件,则可以按如下方式读取该文件

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

尝试在windows C:/somefolder/measurements.txt或linux/home/user/measurements.txt中提供绝对路径

BufferedReader reader = new BufferedReader(new FileReader("/home/user/measurements.txt"));
它会起作用的


当您给出相对路径时,它应该可以工作,但我怀疑您运行程序的目录与您正在读取的java文件和文件不同。

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

您应该使用您正在使用的语言对此进行标记。请检查您当前的目录。。。它可能不是你想象的那样。。。getProperty(“user.dir”)似乎使用Java语言。要消除此错误,请尝试使用文件的绝对路径,而不是考虑相对路径。我的意思是:FileReader(“/home/user/measurements.txt”)…检查RW对该文件的访问权限,这在我身上发生过一次。我怀疑您在编译时是否收到FileNotFoundException…不是答案-更适合作为注释