【发布时间】:2018-07-04 14:45:09
【问题描述】:
许多从资源文件夹中读取文件的教程都使用类加载器。但是,使用该方法我无法解决静态警告问题,结果始终是空指针异常。
public class Test {
public static void main(String[] args) {
StringBuilder contentBuilder=new StringBuilder();
ClassLoader classLoader=Test.class.getClassLoader();
File file=new File(classLoader.getSystemResource("test.html").getFile());
try {
BufferedReader buffer=new BufferedReader(new FileReader(file));
String sCurrentLine="";
while ((sCurrentLine=buffer.readLine())!=null) {
contentBuilder.append(sCurrentLine);
}
buffer.close();
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
String content=contentBuilder.toString();
System.out.println("content="+content);
}
}
我的 IDE 在“文件”行的警告是:
ClassLoader 类型的静态方法 getSystemResource(String) 应该以静态方式访问
我无法弄清楚如何消除警告,如果我只是忽略它并运行代码,我会得到一个空指针异常。为什么我会得到这个,我该如何解决? TIA。
【问题讨论】:
-
你在用maven吗?
-
ClassLoader.getSystemResource("test.html").getFile() -
感谢您的回复。我正在使用 Maven,但这有关系吗?你的建议摆脱了警告,但我仍然得到空指针异常。如果它找不到文件,无论出于何种原因,我不会得到一个找不到文件的异常吗?这是否意味着“ClassLoader.getSystemResource”有问题?
-
为什么这是一个糟糕的问题?
标签: java resources classloader