SpringBoot打jar包后無法訪問resource下的文件
項目中有一個文件需要在程序中讀取,文件位置resource/word.txt 讀取方式如下。
File file = ResourceUtils.getFile("classpath:word.xlsx");
InputStream inputStream = new FileInputStream(file);
在開發環境IDE中是可以正常訪問的,而當打jar包發布到線上就找不到了。原因估計是springboot內置tomcat,打包后是一個jar包導致的。
解決方法
//第一種 已驗證
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("word.txt");
//第二種
ClassPathResource classPathResource = new ClassPathResource("word.txt");
InputStream inputStream =classPathResource.getInputStream();
//第三種
InputStream inputStream = this.getClass().getResourceAsStream("/word.txt");