FileReader 找不到文件,即使它在工作目录中

FileReader can not find file even though it is in working directory

我正在尝试从文件中读取,但是控制台给我这个错误。

Exception in thread "main" java.io.FileNotFoundException: dataEx.txt (The system cannot find the file specified)

这是我正在执行的代码。

import java.io.*;
import java.util.*;

public class ReadTest {

    public static void main(String[] args) throws IOException {
        BufferedReader f = new BufferedReader(new FileReader("dataEx.txt" ));
    }
}

这是我的项目结构

-project
  -ReadTest.java
  -dataEx.txt

工作目录

您的路径错误,因此reader找不到文件。无论您认为您当前的工作目录应该在哪里,那都不是它所在的地方。

执行下面的代码就知道它在哪里:

System.out.println(Paths.get("").toAbsolutePath());

这是您当前工作目录的路径。然后将该结果与您的预期进行比较。意识到您的期望是错误的并更正文件路径或工作目录设置。

现在很难猜测您的目录可能在哪里。也许在您的 bin 文件夹中,在 .class 文件旁边。执行上面的代码片段后你会看到。


蔚来

顺便说一句,不确定您打算用那个 BufferedReader 做什么,但您可能对围绕 Files 和 [=16] 的较新的现代文件 API 感兴趣=]:

List<String> lines = Files.readAllLines(Paths.get("myFile.txt"));

它还有其他用于文件 IO 的实用方法,比繁琐的 File class 和笨拙的 BufferedReader.

好得多