SpringBoot部署到Linux读取resources下的⽂件及遇到的坑下⾯看下SpringBoot⼯程在Linux上运⾏读取resources资源⽂件夹下的⽂件
背景
平时的业务开发中,我们通常会将⼀些固定不变的资源⽂件放到resources⽂件夹下,使⽤时通过相对路径获取⽂件,看是⾮常简单的⼀个功能
其中似乎也有⼀些⼩坑,例如获取到的⽂件内容乱码亦或者⽂件读取不到。
读取乱码
这个很简单哈,在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>
读取⽂件
这个是⼀个⼩坑,捣⿎了⼀两个⼩时才到问题。。。。。绝望
先列出两个绝对不可⾏的,主要原因是再开发环境上是没问题的,跑⽣产跑不通
⽅法⼀:
File currentFolder = File("classpath:excelTemplate/model.xls");
⽅法⼆:
ResourceAsStream("excelTemplate/model.xls");
下⾯再说下能⾏的通的⽅法,不过也有⼀些坑。。。。。。这个坑纯属意外所致
⽅法⼀:
Resource resource = new ClassPathResource("excelTemplate/model.xls");
InputStream resourceAsStream = InputStream();
⽅法⼆:
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excelTemplate/model.xls");
这两种⽅法绝对是好使的,有些⼩伙伴估计在获取⽂件的时候也报错了,若也出现报错可以现在本地打开试⼀下,看⽂件是否存在损坏。
linux怎么读文件内容有图有真相绝对好使
不要误会程序确实是在Linux上跑的,为了验证所以⽤开发⼯具Remote远程调试⽅便截图
以上就是SpringBoot部署到Linux读取resources下的⽂件的详细内容,更多关于SpringBoot读取resources⽂件的资料请关注其它相关⽂章!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。