我正在使用Scanner库来构建文件阅读器,我已经按照库中的大纲进行了编译并且编译得很好,但是当我运行它时,我得到一个FileNotFoundException:text.txt(系统找不到指定的文件) 。该文件与.java文件位于同一文件夹中,但它仍然表示它不存在。
以下是我有任何帮助的代码会很棒。
import java.util.*;
import java.io.*;
class Conjecture {
public static void main(String[] args) throws IOException {
Scanner scanner = null;
try {
scanner = new Scanner(new BufferedReader(new FileReader("text.txt")));
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
} finally {
if (scanner != null) {
scanner.close();
System.out.println("done");
}
}
}
}
答案 0 :(得分:1)
您的文件需要位于运行时JVM的工作目录中。如果您不确定,可以执行以下操作:
File file = new File(".");
System.out.println(file.getAbsolutePath());
答案 1 :(得分:1)
您需要将文件与.class放在同一目录中,而不是.java。从IDE编译时,.class文件通常放在构建目录中。使用绝对路径也可以像Kevin建议的那样工作,或者将文件作为资源添加到jar文件并将其作为资源加载。
答案 2 :(得分:0)
出于调试目的,打印文件的canonical path
:
File file = new new File("text.txt");
System.out.println(file.getCanonicalPath());
这样您就可以看到文件的位置