我的目标是阅读IntelliJ上的文本文件。 但是,当我运行我的代码时,我收到“FileNotFoundException”消息。我的档案存在。我进行了三重检查以确保路径正确。我已经搜索了Stack Overflow寻找答案,阅读我遇到的每个问题,但没有人提出具体的解决方案。
这是我的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class LetterGrader {
public static void main(String[] args) {
String curDir = new File(".").getAbsolutePath();
System.out.println("Current sys dir: " + curDir);
try {
File inputData = new File("input.txt");
BufferedReader br = new BufferedReader(new FileReader(inputData));
} catch (IOException e) {
System.out.println("File not found");
e.printStackTrace();
}
}
}
这是出现的错误消息。
File not found
java.io.FileNotFoundException: input.txt (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileReader.<init>(FileReader.java:72)
at LetterGrader.main(LetterGrader.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Process finished with exit code 0
任何帮助将不胜感激!当我找到解决方案时,我也会回复。
[更新]
我通过将“input.txt”文件或src文件夹移动到主项目的文件夹中解决了这个问题。
我还使用了Scanner而不是BufferedReader。
我的最终代码有效:
try {
Scanner diskScanner = new Scanner(new File("input.txt"));
while (diskScanner.hasNextLine()) {
System.out.println(diskScanner.nextLine());
}
diskScanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
答案 0 :(得分:3)
您可以尝试先打印文件的绝对路径
System.out.println(new File("input.txt").getAbsolutePath());
然后,由于您使用的是IntelliJ,您可以在IDE中打开终端并尝试从那里打开此文件。例如:
cat /Users/antonpp/Documents/Projects/testapp/input.txt
因此,您将完全确定该文件存在且位于正确的位置。
答案 1 :(得分:3)
问题是由于工作目录(即您的源代码所在的目录)与当前的IntelliJ
工作目录不同而导致的。通常,工作目录是项目的主目录。
因此,您可以将文件放在该目录中,也可以使用Edit Configurations...
选项。选择Edit Configurations...
后,签出选项Working directory
并进行相应的更改。
答案 2 :(得分:1)
哦,我也有一些问题。所以试试Edit Configurations
。你可以在Run - &gt;找到它。编辑配置..然后编辑Working directory
到文件所在的位置。顺便说一句,您可以将其编辑为基本目录并在代码中添加路径。