我的目標是讀取IntelliJ上的文本文件。 但是,當我運行我的代碼時,出現「FileNotFoundException」消息。我的文件存在。我三重檢查,以確保路徑是正確的。我搜索了Stack Overflow尋找答案,閱讀了我遇到的每個問題,但沒有人提供具體的解決方案。IntelliJ「FileNotFoundException」,文件存在
這是我的代碼:
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文件夾並進入主項目的文件夾來解決這個問題。
我也用掃描儀代替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();
}
}
最有可能'inputData'不指向您認爲它指向的文件。嘗試使用絕對路徑,或者嘗試打印inputData的絕對路徑並查看輸出結果。 – Paul
打印'System.getProperty(「user.dir」);'並查看目錄是否是文件所在的目錄。如果沒有,請使用'getAbsolutePath()' – sam
我得到了絕對路徑,並且文件在那裏,但仍然是錯誤消息。 ( – Sugarcoder