好的,这很奇怪,很荒谬......
我有这个非常简单的代码:
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
String s;
while ((s = br.readLine()) != null) {
System.out.println(s);
}
}
我还尝试将BufferedReader...
包装在try-catch块中。为什么这会引发这个错误:
Exception in thread "main" java.io.FileNotFoundException: /input.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)
它出现在BufferedReader
行。
该文件与java文件位于同一个包/目录中。我已经尝试过声明抛出异常和try-catch块。
无论我做什么,我都会收到这个错误。
答案 0 :(得分:4)
您需要将文件放在启动Java的工作目录中。根据您启动程序的方式,这可能会有所不同。
您可以使用以下方式打印当前工作目录:
System.out.println(System.getProperty("user.dir"));
答案 1 :(得分:0)
使用Thread.currentThread().getContextClassLoader().getResourceAsStream("path");
示例:
InputStream inputstreamFromPackage = Thread.currentThread().getContextClassLoader().getResourceAsStream("<packageName/file.ext>");