程序抛出FileNotFoundException
,即使被引用的文件明显位于同一个包中。我已经包含了所有必要的软件包(import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;
)并正确实施了BufferedReader
和FileReader
类,因此我不确定问题是什么:
public class TryWithResources {
public static void main(String[] args) {
File file = new File("test.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.out.println("Can't find file " + file.toString());
} catch (IOException e) {
System.out.println("Unable to read file " + file.toString());
}
}
}
答案 0 :(得分:0)
您想要getResourceAsStream
而不是File
和FileReader
。
File
用于打开文件系统中的文件。 getResourceAsStream
用于打开包中的文件(如果部署,则打开jar文件中的文件)。
InputStream in = getClass().getResourceAsStream("test.txt");
这里有很好的信息https://www.novixys.com/blog/read-file-resources-folder-java/