从资源文件夹读取文件的许多教程都使用类加载器。但是,使用该方法无法解决静态警告问题,并且结果始终是空指针异常。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。
2 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
或者,您可以尝试一次阅读所有内容:
ClassLoader loader = Thread.currentThread().getContextClassLoader();
String content;
try {
content = new String(Files.readAllBytes(Paths.get(loader.getResource("test.html").toURI())), StandardCharsets.UTF_8);
} catch (Exception e) {
e.printStackTrace();
}
如果您使用的是maven,请记住根据您的情况设置资源(asSources Root或Test Sources Root)。
顺便说一句,您的解决方案可以使用Test.class.getClassLoader();。
添加回答
举报
0/150
提交
取消