一、描述
我们在开发过程中,会将一些模板文件放到resource目录下,那么我们如何读取它呢
二、读取方案
2.1、PathMatchingResourcePatternResolver
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
File file = resourcePatternResolver.getResource("文件名").getFile()
2.2、ResourceLoader
@Autowired
private ResourceLoader resourceLoader;
File file = resourceLoader.getResource("文件名").getFile();
2.3、ResourceUtils
ResourceUtils.getFile("文件名");
2.4、使用Spring框架的Resource类(需要引入spring-core依赖)
Resource resource = new ClassPathResource("文件名");
File file = resource.getFile();
三、jar包运行时注意事项
Jar包中,资源文件是以流的形式打包的,而不是单独的文件,所以是无法获取File对象的,只能获取流
- 举例
本地以下代码可以获取到File,但是打成jar包无法获取File
// 读取模板文件
ClassPathResource resource = new ClassPathResource("template/data.xlsx");
EasyExcel.write(res.getOutputStream()).withTemplate(resource.getFile()).head(headColList).sheet().doWrite(dataList);
原因是Jar包中,资源文件是以流的形式打包的,而不是单独的文件,所以是无法获取File对象的,只能获取流
ClassPathResource resource = new ClassPathResource("template/data.xlsx");
EasyExcel.write(res.getOutputStream()).withTemplate(resource.getInputStream()).head(headColList).sheet().doWrite(dataList);
最后修改时间:2024-07-03 20:59:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




