文章目錄
開發過程中,必不可少的需要讀取文件,對於打包方式的不同,還會存在一些坑,比如以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