欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

SpringBoot讀取resources目錄下的文件

最近實(shí)驗(yàn)室的項(xiàng)目中遇到一個(gè)問題:需要讀取SpringBoot項(xiàng)目中resources目錄下的文件,現(xiàn)在把我踩過(guò)的坑寫出來(lái)。

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

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

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

目錄結(jié)構(gòu)

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

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

這種方式在idea上運(yùn)行是可以的,但是打成jar包是會(huì)報(bào)文件找不到異常的

2. ResourceUtils工具類

上述方案是最先寫的,這肯定是不行的,因?yàn)榇虬蟮膉ar文件的目錄結(jié)構(gòu)不會(huì)從src開始,經(jīng)百度后查到j(luò)ar文件中的資源,讀取時(shí)必須使用流的方式,查到可以使用ResourceUtils類獲得文件流,如下:

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

這種方式在idea上運(yùn)行是可以的,但是打成jar包是會(huì)報(bào)文件找不到異常的

3. ClassPathResource類

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

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

與上面的項(xiàng)目相對(duì)應(yīng)的jar文件的目錄結(jié)構(gòu):

jar目錄結(jié)構(gòu)

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

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

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

總結(jié)

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

相關(guān)文章

最新評(píng)論