SpringBoot-讀取classpath下文件


文章目錄

  開發過程中,必不可少的需要讀取文件,對於打包方式的不同,還會存在一些坑,比如以jar包方式部署時,文件都存在於jar包中,某些讀取方式在開發工程中都可行,但是打包后,由於文件被保存在jar中,會導致讀取失敗。
  這時就需要通過類加載器讀取文件,類加載器可以讀取jar包中的class類當然也可以讀取jar包中的文件。

// 方法1:獲取文件或流
this.getClass().getResource("/")+fileName;
this.getClass().getResourceAsStream(failName);
// 方法2:獲取文件
File file = org.springframework.util.ResourceUtils.getFile("classpath:test.txt");
// 方法3:獲取文件或流
ClassPathResource classPathResource = new ClassPathResource("test.txt");
classPathResource .getFile();
classPathResource .getInputStream();

// >>>>>>>>>>>>>>>> 下面方法可以讀取jar包下文件
假設resources目錄下有一個test.txt文件,首先獲得當前的類加載器,通過類加載器讀取文件。

// 方法1
InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");
// 方法2
InputStream io = getClass().getClassLoader().getResourceAsStream("test.txt");

 


注意:Spring工具類會對classpath路徑做處理,類加載器不會對classpath做處理,因此使用類加載器讀取文件,路徑中不要添加classpath


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM