读取项目资源遇到的坑

目录

banner-web-design.png

在项目中放了一个基础配置json文件,需要读出其中的内容,来进行操作

目录结构:/resource/profile/xxx.json

屏幕快照 2018-07-14 下午5.59.31.png

最开始是想到使用ResouceUtils.getFile()来直接读取json文件中的内容

File file = ResourceUtils.getFile("classpath:profile/preset-preparation-work.json");

本地测试ok,但是发布到环境后,报错了,因为是打包成jar部署的,ResourceUtils.getFile获取不了jar包中的内容

java.io.FileNotFoundException: class path resource [profile/preset-preparation-work.json] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/app.jar!/BOOT-INF/classes!/profile/preset-preparation-work.json

然后又使用ResourceLoader.getResoure,还是一样不行

ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:profile/preset-preparation-work.json");
File file = resource.getFile();

最后想到流,然后就这样解决了。 icon_question.png

        String content = null;
        try {
            Resource resource = new ClassPathResource("profile/preset-preparation-work.json");
            BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String temp;
            while ((temp = br.readLine()) != null) {
                sb.append(temp);
            }
            br.close();
            content = sb.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }

调试这个地方部署了几次,浪费了很多时间!!!

参考资料

标签: java springboot

声明:本博客如无特殊说明皆为原创,转载请注明来源:读取项目资源遇到的坑谢谢!

相关文章

精彩评论
  1. 其实可以将lib依赖,resources,jar分开打包的,读取文件方便很多。 icon_lol.png

    1. 好办法!!!多写指教 icon_redface.png

发表评论:

icon_question.pngicon_razz.pngicon_sad.pngicon_evil.pngicon_exclaim.pngicon_smile.pngicon_redface.pngicon_biggrin.pngicon_surprised.pngicon_eek.pngicon_confused.pngicon_cool.pngicon_lol.pngicon_mad.pngicon_twisted.pngicon_rolleyes.pngicon_wink.pngicon_idea.pngicon_arrow.pngicon_neutral.pngicon_cry.pngicon_mrgreen.png