欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

SpringBoot如何读取Resource下的文件,

来源: javaer 分享于  点击 43159 次 点评:242

SpringBoot如何读取Resource下的文件,


目录
  • SpringBoot项目构建成jar运行,如何正确读取resource里的文件
    • 第一种
    • 第二种
    • 第三种
    • 第四种
  • 总结

    SpringBoot项目构建成jar运行,如何正确读取resource里的文件

    SpringBoot 项目在打包成jar 文件后运行在服务器上后是无法读取到 jar 文件中的内容的

    总结了一般有如下四种读取文件的方式:

    第一种

    ClassPathResource classPathResource = new ClassPathResource("excleTemplate/test.xlsx");
    InputStream inputStream = classPathResource.getInputStream();

    第二种

    InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excleTemplate/test.xlsx");

    第三种

    InputStream inputStream  = this.getClass().getResourceAsStream("/excleTemplate/test.xlsx");

    第四种

    File file = ResourceUtils.getFile("classpath:excleTemplate/test.xlsx");
    InputStream inputStream = new FileInputStream(file);

    前三种方法在开发环境(IDE中)和生产环境(linux部署成jar包)都可以读取到,第四种只有开发环境 时可以读取到,生产环境读取失败。

    推测主要原因是springboot内置tomcat,打包后是一个jar包,无法直接读取jar包中的文件,读取只能通过类加载器读取。

    前三种都可以读取到其实殊途同归,直接查看底层代码都是通过类加载器读取文件流,类加载器可以读取jar包中的编译后的class文件,当然也是可以读取jar包中的excle模板了。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持3672js教程。

    您可能感兴趣的文章:
    • SpringBoot打包后无法读取到resource下的资源文件的解决
    • SpringBoot项目中读取resource目录下的文件六种方法
    • SpringBoot读取resource目录下文件失败的原因及解决方案
    • SpringBoot读取Resource目录下文件的四种方式总结
    • springboot读取resource配置文件生成容器对象的示例代码
    • Springboot如何读取resources下的json配置文件
    相关栏目:

    用户点评