参考博客:http://blog.csdn.net/ciedecem/article/details/10382275
问题:
项目中需要用到从文件中加载json数据,如图放在conf目录下。
程序中用
XXX.class.getResource("app.json");
XXX.class.getClassLoader().getResourceAsStream("app.json")
都找不到该文件,报NullPointerException。类加载器只能加载classPath目录下面的文件,不能用这两种方式读取jar文件外部的文件。
解决方案:
参考网上博客...知道Maven项目会将src/main/resources目录中的所有文件都打包到jar中,那么上面的方法就可以用了。于是建resources目录,发现确实可行!
附:类加载器加载文件方式
- <span style="white-space:pre;"> </span>InputStream inputStream = EmojiUtil.class.getClassLoader().getResourceAsStream("emoji.json");
- BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
- StringBuilder strSB = new StringBuilder();