亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot如何讀取resources目錄下的文件

 更新時間:2023年07月20日 11:00:42   作者:GaoYang8320  
這篇文章主要介紹了SpringBoot如何讀取resources目錄下的文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot讀取resources目錄下的文件

最近實驗室的項目中遇到一個問題:需要讀取SpringBoot項目中resources目錄下的文件,現(xiàn)在把我踩過的坑寫出來。

需要讀取jar包中的resources文件的,第三種方法是可以的,前兩個可以直接跳過

SpringBoot項目讀取resources目錄下的文件,通過查閱資料和以往經(jīng)驗,剛開始采用Java傳統(tǒng)的讀取文件的方式,發(fā)現(xiàn)在IDEA上是可以讀取成功的,但是項目打包jar后在服務器上運行找不到文件。

于是換到另外兩種方式,下面依次說明這三種方式:目錄結(jié)構:需要讀取resources/static/assets/test.txt文件

目錄結(jié)構

1. 傳統(tǒng)java讀取方式

File file = new File("src/main/resources/static/assets/test.txt");
InputStream inputStream=new FileInputStream(file);

這種方式在idea上運行是可以的,但是打成jar包是會報文件找不到異常的

2. ResourceUtils工具類

上述方案是最先寫的,這肯定是不行的,因為打包后的jar文件的目錄結(jié)構不會從src開始,經(jīng)百度后查到jar文件中的資源,讀取時必須使用流的方式,查到可以使用ResourceUtils類獲得文件流,如下:

File file = ResourceUtils.getFile("classpath:static/assets/test.txt");
InputStream inputStream=new FileInputStream(file);

這種方式在idea上運行是可以的,但是打成jar包是會報文件找不到異常的

3. ClassPathResource類

ClassPathResource classPathResource = new ClassPathResource("static/assets/test.txt");
InputStream inputStream = classPathResource.getInputStream();

這種方法在idea上運行是可以的,打成jar包也是可以的。與方法2的區(qū)別可以看一下這篇文章

與上面的項目相對應的jar文件的目錄結(jié)構:

jar目錄結(jié)構

Springboot讀取resources文件(適用于linux環(huán)境)

InputStream is = this.getClass().getResourceAsStream(“文件路徑”);
String s = IOUtils.toString(is, “utf8”);// org.apache.commons.io

兩步就可以簡單的完成讀取 resources 目錄下的文件了,并且打成 jar 包發(fā)布到 linux 環(huán)境上進行部署也可以正常的讀取。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論