我的项目中有以下路径,我正在编写名为 SomeClassTest.java 的 Someclass.java 测试,在测试中我需要读取“sample.txt”,但我无法读取它文本文件。 以下是我的项目结构。
src/
java/
SomeClass.java
test/
java/
SomeClassTest.java
resources/
sample.txt
我尝试使用以下代码读取文件。
File file = new File("/resources/sample.txt");
FileReader fr = new FileReader(file);
br = new BufferedReader(fr);
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
上面的代码给出了 fileNotFoundException。我可以知道我在这里做错了什么吗?
最佳答案
由于 resources
是一个包,您可以使用 getClass().getResourceAsStream(...)
访问您的文件:
FileReader fr = new FileReader(getClass().getResourceAsStream("/resources/sample.txt");
br = new BufferedReader(fr);
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
此函数在位于类层次结构内的文件上打开一个 InputStream
。
如果您从静态上下文中执行代码,则必须使用 MyClass.class.getResourceAsStream(...)
而不是调用 getClass().getResourceAsStream(... )
。
关于java - 从java中的单独文件夹中读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27419832/