Java中的文件读取错误?

Java中的文件读取错误?,java,arraylist,java.util.scanner,filereader,Java,Arraylist,Java.util.scanner,Filereader,我试图从一个文件中读取数据,并将每一行输入ArrayList。我的文件与主java文件位于同一文件夹中。文件名中没有拼写错误。有人能帮我找出是什么问题吗 Scanner in = new Scanner(new FileReader("lab02in.txt")); while(in.hasNextLine()) { String line = in.nextLine(); countries.add(line); } in.clo

我试图从一个文件中读取数据,并将每一行输入ArrayList。我的文件与主java文件位于同一文件夹中。文件名中没有拼写错误。有人能帮我找出是什么问题吗

Scanner in = new Scanner(new FileReader("lab02in.txt"));
    while(in.hasNextLine())
    {
        String line = in.nextLine();
        countries.add(line);
    }
    in.close();

    System.out.println("Printing New list after adding from file");
    displayCountries(countries);
我得到这个错误:

Exception in thread "main" java.io.FileNotFoundException: lab02in.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at java.io.FileInputStream.<init>(FileInputStream.java:101)
    at java.io.FileReader.<init>(FileReader.java:58)
    at lab2.Lab2.main(Lab2.java:50)
Java Result: 1
线程“main”java.io.FileNotFoundException:lab02in.txt中的异常(无此类文件或目录) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(FileInputStream.java:146) 位于java.io.FileInputStream。(FileInputStream.java:101) 位于java.io.FileReader。(FileReader.java:58) 位于lab2.lab2.main(lab2.java:50) Java结果:1
如果您正确运行Java程序,那么您当前的目录就是
lab2
上面的目录。然后声明该文件与Java源代码位于同一目录中。代码正在当前目录中查找,而不是源代码目录,因此找不到您的文件

请尝试以下操作之一:

  • 将文本文件移动到当前目录(位于
    lab2
    上方)。这是首选,因为源代码和资源不应该混合使用。或
  • 创建
    FileReader
    时,将
    lab2/
    前置到相对路径名
  • 代码:


    VM的当前工作目录与文件所在的目录不同。如果文件
    lab02in.txt
    是静态的,并且相对于类(即在同一目录中),则可以(并且应该)使用
    getResourceAsStream
    加载它。否则您需要指定路径。

    检查System.out.println(System.getProperty(“user.dir”);
    这会让您知道它在哪里查找文件。

    尝试使用完整路径,并记住将“\”替换为“\ \”。错误在于应用程序找不到您的文件或无法从中读取。您是否检查过这两个条件是否都不禁止您的应用程序成功执行?我只是将.txt文件移动到主目录中,如选项1所示。它是有效的。非常感谢。
    Scanner in = new Scanner(new FileReader("lab02/lab02in.txt"));