SpringBoot读取Resource目录下文件的四种方式总结
作者:Daylight629
在Spring Boot项目中,经常需要获取resources目录下的文件,这些文件可以包括配置文件、模板文件、静态资源等,本文将介绍四种常用的方法来获取resources目录下的文件,需要的朋友可以参考下
SpringBoot读取Resource下文件的四种方式
1、
ClassPathResource classPathResource = new ClassPathResource("/static/image/a.jpg"); InputStream inputStream =classPathResource.getInputStream();
2、
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/static/image/a.jpg");
3、
InputStream inputStream = this.getClass().getResourceAsStream("/static/image/a.jpg");
4、
File file = ResourceUtils.getFile("classpath:/static/image/a.jpg"); InputStream inputStream = new FileInputStream(file);
前三种方法在开发环境(IDE中)和生产环境(linux部署成jar包)都可以读取到,第四种只有开发环境时可以读取到,打成jar包就不行。
主要原因是springboot内置tomcat,打包后是一个jar包,因此通过文件读取获取流的方式行不通,因为无法直接读取压缩包中的文件,读取只能通过流的方式读取。
前三种都可以,直接查看底层代码都是通过类加载器读取文件流,类加载器可以读取jar包中的编译后的class文件,当然也是可以读取jar包中的文件流了。
到此这篇关于SpringBoot读取Resource目录下文件的四种方式总结的文章就介绍到这了,更多相关SpringBoot获取resources文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!