SpringBoot中读取Resource下文件的方法


最近做一个项目,直接在Resource目录下放了一个test.png文件,在读取时的代码如下:

1 File testFile = ResourceUtils.getFile("classpath:test.png");

idea中调试时是没有问题的,于是提交代码,发布服务等等操作,于是收到测试同事反馈回来的功能异常,查看日志,发现有大量的异常堆栈,看了下是test.png文件读取失败导致的空指针异常的问题。

通过网上搜索才知道问题的根源所在,原来如果是war包时,tomcat是会解压成文件系统的文件的,这么使用是没有问题的,但是因为我们这个是使用的SpringBoot,直接打成jar包运行的,test.png文件只是jar包里面的资源文件,是不能去读取文件路径来访问的,网上的解决的方法有多种办法,基本上是通过classLoader.getResourceAsStream来读取的,但是Spring框架自己提供了一个ClassPathResource类,这个类是专门用于处理这种路径问题的,其使用也非常方便,修改后的代码如下:

1 String fileName = "test.png";
2 ClassPathResource rs = new ClassPathResource(fileName);
3 InputStream testStream = rs.getInputStream();


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM