SpringBoot如何读取resources目录下的文件
SpringBoot读取resources目录下的文件
最近实验室的项目中遇到一个问题:需要读取SpringBoot项目中resources目录下的文件,现在把我踩过的坑写出来。
需要读取jar包中的resources文件的,第三种方法是可以的,前两个可以直接跳过
SpringBoot项目读取resources目录下的文件,通过查阅资料和以往经验,刚开始采用Java传统的读取文件的方式,发现在IDEA上是可以读取成功的,但是项目打包jar后在服务器上运行找不到文件。
于是换到另外两种方式,下面依次说明这三种方式:目录结构:需要读取resources/static/assets/test.txt文件

1. 传统java读取方式
File file = new File("src/main/resources/static/assets/test.txt");
InputStream inputStream=new FileInputStream(file);这种方式在idea上运行是可以的,但是打成jar包是会报文件找不到异常的
2. ResourceUtils工具类
上述方案是最先写的,这肯定是不行的,因为打包后的jar文件的目录结构不会从src开始,经百度后查到jar文件中的资源,读取时必须使用流的方式,查到可以使用ResourceUtils类获得文件流,如下:
File file = ResourceUtils.getFile("classpath:static/assets/test.txt");
InputStream inputStream=new FileInputStream(file);这种方式在idea上运行是可以的,但是打成jar包是会报文件找不到异常的
3. ClassPathResource类
ClassPathResource classPathResource = new ClassPathResource("static/assets/test.txt");
InputStream inputStream = classPathResource.getInputStream();这种方法在idea上运行是可以的,打成jar包也是可以的。与方法2的区别可以看一下这篇文章
与上面的项目相对应的jar文件的目录结构:

Springboot读取resources文件(适用于linux环境)
InputStream is = this.getClass().getResourceAsStream(“文件路径”); String s = IOUtils.toString(is, “utf8”);// org.apache.commons.io
两步就可以简单的完成读取 resources 目录下的文件了,并且打成 jar 包发布到 linux 环境上进行部署也可以正常的读取。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
- Springboot 项目读取Resources目录下的文件(推荐)
- 解决springboot项目找不到resources目录下的资源问题
- 解决@springboottest注解无法加载src/main/resources目录下文件
- springboot项目读取resources目录下的文件的9种方式
- springboot实现jar运行复制resources文件到指定的目录(思路详解)
- SpringBoot中读取jar包中的resources目录下的文件的三种方式
- SpringBoot实现本地上传文件到resources目录
- Springboot获取jar包中resources资源目录下的文件
- Springboot项目启动不加载resources目录下的文件问题
- SpringBoot下获取resources目录下文件的常用方法
相关文章
SpringBoot通过@MatrixVariable进行传参详解
这篇文章主要介绍了SpringBoot使用@MatrixVariable传参,文章围绕@MatrixVariable展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-06-06
SpringBoot如何处理@KafkaListener消息
Spring通过KafkaMessageListenerContainer、ConcurrentMessageListenerContainer等组件实现Kafka消息的监听和处理,并通过@KafkaListener注解将业务逻辑与Kafka消费者连接起来,Spring Boot自动配置Kafka相关组件,简化了Kafka的使用2024-12-12
IDEA中springboot的热加载thymeleaf静态html页面的方法
这篇文章主要介绍了IDEA中springboot的热加载thymeleaf静态html页面的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-07-07
Java中ArrayList 和 HashMap 自动扩容机制详解
本文深入分析了Java集合框架中ArrayList和HashMap的自动扩容机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2026-03-03
SpringBoot日志进阶实战之Logback配置经验和方法
本文给大家介绍在SpringBoot中使用Logback配置日志的经验和方法,并提供了详细的代码示例和解释,包括:滚动文件、异步日志记录、动态指定属性、日志级别、配置文件等常用功能,覆盖日常Logback配置开发90%的知识点,感兴趣的朋友跟随小编一起看看吧2023-06-06


最新评论