springboot项目读取resources目录下的文件的9种方式
1: 使用 ClassLoader.getResourceAsStream() 方法
可以使用类加载器来获取资源文件的输入流。该方法接受一个资源文件路径参数,返回一个 InputStream 对象。
注意,该方法返回的资源文件路径是相对于类加载器的根路径。因此,对于 resources 目录下的文件,需要在文件名前加上 “classpath:” 前缀。例如: “classpath:file.txt”。
2: 使用 Class.getResourceAsStream() 方法
可以使用 Class 类的 getResourceAsStream() 方法来读取资源文件。该方法接受一个资源文件路径参数,返回一个 InputStream 对象。
该方法返回的资源文件路径是相对于当前类的路径。因此,对于 resources 目录下的文件,需要在文件名前加上 “/” 前缀。例如: “/file.txt”。
3: 使用 ResourceLoader 加载文件
可以使用 Spring 的 ResourceLoader 接口来加载资源文件。ResourceLoader 接口有一个 getResource() 方法,接受一个资源文件路径参数,返回一个 Resource 对象。
1 2 | Resource resource = resourceLoader.getResource( "classpath:file.txt" ); InputStream inputStream = resource.getInputStream(); |
需要注意的是:需要在类中注入 ResourceLoader 对象,并在方法中使用。例如:
1 2 3 4 5 6 7 | @Autowired private ResourceLoader resourceLoader; public void readResourceFile() throws IOException { Resource resource = resourceLoader.getResource( "classpath:file.txt" ); InputStream inputStream = resource.getInputStream(); } |
4: 使用 ResourceUtils 加载文件
ResourceUtils 是 Spring 提供的一个工具类,用于加载资源文件。可以使用 ResourceUtils.getFile() 方法来获取文件对象。
需要注意的是:该方法只适用于本地文件系统和 JAR 文件。对于 WAR 文件或者其他类型的文件,该方法可能无法正常工作。
5: 使用 ApplicationContext 加载文件
可以使用 ApplicationContext 的 getResource() 方法来加载资源文件。该方法接受一个资源文件路径参数,返回一个 Resource 对象。
1 2 | Resource resource = applicationContext.getResource( "classpath:file.txt" ); InputStream inputStream = resource.getInputStream(); |
需要注意的是:需要在类中注入 ApplicationContext 对象,并在方法中使用。例如:
1 2 3 4 5 6 7 | @Autowired private ApplicationContext applicationContext; public void readResourceFile() throws IOException { Resource resource = applicationContext.getResource( "classpath:file.txt" ); InputStream inputStream = resource.getInputStream(); } |
6: 使用 ServletContext 加载文件
可以使用 ServletContext 的 getResourceAsStream() 方法来读取资源文件。该方法接受一个资源文件路径参数,返回一个 InputStream 对象。
1 | InputStream inputStream = servletContext.getResourceAsStream( "/WEB-INF/classes/file.txt" ); |
需要注意的是:需要在类中注入 ServletContext 对象,并在方法中使用。例如:
1 2 3 4 5 6 | @Autowired private ServletContext servletContext; public void readResourceFile() throws IOException { InputStream inputStream = servletContext.getResourceAsStream( "/WEB-INF/classes/file.txt" ); } |
7: 使用 File System 加载文件
可以使用 File 类来读取资源文件。需要提供完整的文件路径。
1 2 | File file = new File( "src/main/resources/file.txt" ); InputStream inputStream = new FileInputStream(file); |
需要注意的是:使用该方法需要提供完整的文件路径,因此需要知道文件所在的绝对路径。
8: 使用 Paths 和 Files 加载文件
可以使用 Java NIO 中的 Paths 和 Files 类来读取资源文件。该方法需要提供完整的文件路径。
1 2 | Path path = Paths.get( "src/main/resources/file.txt" ); InputStream inputStream = Files.newInputStream(path); |
需要注意的是,使用该方法需要提供完整的文件路径,因此需要知道文件所在的绝对路径。
9: 使用 ClassPathResource 加载文件
可以使用 Spring 提供的 ClassPathResource 类来读取资源文件。该方法需要提供资源文件的相对路径。
1 2 | ClassPathResource resource = new ClassPathResource( "file.txt" ); InputStream inputStream = resource.getInputStream(); |
需要注意的是:ClassPathResource 会在类路径下查找资源文件,因此不需要提供完整的文件路径。
10:总结
以上 9 种方式,都可以用来读取 Spring Boot 项目中 resources 目录下的文件。不同的方法适用于不同的场景,可以根据需要选择合适的方法。
实际开发中推荐使用以下几种方法:
使用 ClassLoader.getResourceAsStream() 方法
这是一种通用的方式,可以适用于大多数情况。
使用 ResourceLoader 加载文件
如果使用 Spring 框架,可以使用 ResourceLoader 接口来加载资源文件。这种方式适用于大多数 Spring Boot 项目。
使用 ClassPathResource 加载文件
如果只需要读取 resources 目录下的文件,可以使用 Spring 提供的 ClassPathResource 类来加载文件。这种方式比较简单,不需要提供完整的文件路径。
需要注意的是:使用不同的方式需要了解其适用的场景和使用方法。对于不同的项目和需求,可能需要选择不同的方式。
到此这篇关于springboot项目读取resources目录下的文件的9种方式的文章就介绍到这了,更多相关springboot 读取resources目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- Springboot 项目读取Resources目录下的文件(推荐)
- 解决springboot项目找不到resources目录下的资源问题
- 解决@springboottest注解无法加载src/main/resources目录下文件
- springboot实现jar运行复制resources文件到指定的目录(思路详解)
- SpringBoot中读取jar包中的resources目录下的文件的三种方式
- SpringBoot如何读取resources目录下的文件
- SpringBoot实现本地上传文件到resources目录
- Springboot获取jar包中resources资源目录下的文件
- Springboot项目启动不加载resources目录下的文件问题
- SpringBoot下获取resources目录下文件的常用方法
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
每天练一练Java函数与算法Math函数总结与字符串转换整数
这篇文章主要介绍了Java函数与算法Math函数总结与字符串转换整数,每天练一练,水平在不知不觉中提高,需要的朋友快过来看看吧2021-08-08spring接口通过配置支持返回多种格式(xml,json,html,excel)
这篇文章主要给大家介绍了关于spring接口如何通过配置支持返回多种格式(xml,json,html,excel)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。2017-12-12浅谈Spring AOP中args()和argNames的含义
这篇文章主要介绍了Spring AOP中args()和argNames的含义,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07Java 比较接口comparable与comparator区别解析
这篇文章主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-10-10
最新评论