spring项目获取resources下文件的方法
最近写读取模板文件做一些后续的处理,将文件放在了项目的resources
下,发现了一个好用的读取方法:
比如上边是你需要读取的文件:
读取的方法如下:
//File file = ResourceUtils.getFile("classpath:templates/b_dfd.txt");File file = ResourceUtils.getFile("classpath:templates");if(file.exists()){File[] files = file.listFiles();if(files != null){for(File childFile:files){System.out.println(childFile.getName());}}}
上边的 ResourceUtils.getFile()
方法可以获取到resources
下的文件。
前几天发现,这个方法在linux
系统下没用,希望大家注意一下。
补充
通过一些大神的反馈,在打成jar包后基本会遇到两个问题如下:
- 获取不到resources下的文件。
- 获取到resources下的文件,但是乱码了。
基于这两个问题,一一解决。
打成jar包后获取文件的方法
ClassPathResource classPathResource = new ClassPathResource("static/model/pztjmodel.xls");InputStream inputStream = classPathResource.getInputStream();
以上static/model/pztjmodel.xls
这个路径是从resources
目录下开始的。这个在打完包之后仍然可以。
打成jar包后文件乱码问题
springboot
项目都是maven项目,打成jar包后编译后的文件乱码,是说明maven打包的时候出了问题,这个是缺少了一个插件。如下:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><nonFilteredFileExtensions><nonFilteredFileExtension>sql</nonFilteredFileExtension><nonFilteredFileExtension>xlsx</nonFilteredFileExtension><nonFilteredFileExtension>xls</nonFilteredFileExtension></nonFilteredFileExtensions></configuration></plugin>
注意nonFilteredFileExtensions
的标签配置,像上边配置了不同文件后缀的文件,这个就表示maven打包后会忽略这几个文件,不会对这种格式的文件编译,这样就不会出现乱码问题了 !!!