当前位置: 代码网 > it编程>编程语言>Java > SpringBoot如何读取Resource下的文件

SpringBoot如何读取Resource下的文件

2025年04月24日 Java 我要评论
springboot项目构建成jar运行,如何正确读取resource里的文件springboot 项目在打包成jar 文件后运行在服务器上后是无法读取到 jar 文件中的内容的总结了一般有如下四种读

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模板了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com