我正在尝试访问存储在High_Scores.txt
文件夹中的Resources
文件。
我的项目树看起来像这样:
我使用下面显示的代码来访问该文件。检查了这个similar question,但解决方案不适用于我的情况。
File file = new File(getClass().getClassLoader().getResource("/Resources/High_Scores.txt").getFile());
但我继续NULLPointerException
。在这种情况下,我不明白这个例外。有人可以指出我做错了吗?
更新
如果我改变代码:
File file = new File(getClass().getClassLoader().getResource("Resources/High_Scores.txt").getFile());
我得到FILENOTFOUNDException
。
答案 0 :(得分:0)
对于阅读文件,你可以使用InputStream
而不是像这样的新File()
(假设你正在调用从Board
类读取文件)
InputStream stream = Board.class.getResourceAsStream("/Resources/high.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
}
System.out.println(out.toString()); //Prints the string content read from input stream
reader.close();
或者您可以使用ClassLoader
对象
File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").getFile());
如果特定目录包含文件夹
File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").toURI());