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