SpringBoot如何讀取resources目錄下的文件
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文件
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):
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è)參考,也希望大家多多支持腳本之家。
- Springboot 項(xiàng)目讀取Resources目錄下的文件(推薦)
- 解決springboot項(xiàng)目找不到resources目錄下的資源問題
- 解決@springboottest注解無(wú)法加載src/main/resources目錄下文件
- springboot項(xiàng)目讀取resources目錄下的文件的9種方式
- springboot實(shí)現(xiàn)jar運(yùn)行復(fù)制resources文件到指定的目錄(思路詳解)
- SpringBoot中讀取jar包中的resources目錄下的文件的三種方式
- SpringBoot實(shí)現(xiàn)本地上傳文件到resources目錄
- Springboot獲取jar包中resources資源目錄下的文件
- Springboot項(xiàng)目啟動(dòng)不加載resources目錄下的文件問題
- SpringBoot下獲取resources目錄下文件的常用方法
相關(guān)文章
Mybatis配置映射文件中parameterType的用法講解
這篇文章主要介紹了Mybatis配置映射文件中parameterType的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09spring boot 圖片上傳與顯示功能實(shí)例詳解
這篇文章主要介紹了spring boot 圖片上傳與顯示功能實(shí)例詳解,需要的朋友可以參考下2017-04-04SpringBoot監(jiān)聽Nacos動(dòng)態(tài)修改日志級(jí)別的操作方法
線上系統(tǒng)的日志級(jí)別一般都是 INFO 級(jí)別,有時(shí)候需要查看 WARN 級(jí)別的日志,所以需要?jiǎng)討B(tài)修改日志級(jí)別,微服務(wù)項(xiàng)目中使用 Nacos 作為注冊(cè)中心,我們可以監(jiān)聽 Nacos 配置,修改日志級(jí)別,這篇文章主要介紹了SpringBoot監(jiān)聽Nacos動(dòng)態(tài)修改日志級(jí)別的操作方法,需要的朋友可以參考下2023-12-12關(guān)于JDK+Tomcat+eclipse+MyEclipse的配置方法,看這篇夠了
關(guān)于JDK+Tomcat+eclipse+MyEclipse的配置問題,很多朋友都搞不太明白,網(wǎng)上一搜配置方法多種哪種最精簡(jiǎn)呢,今天小編給大家分享一篇文章幫助大家快速掌握J(rèn)DK Tomcat eclipse MyEclipse配置技巧,需要的朋友參考下吧2021-06-06動(dòng)態(tài)更改Spring定時(shí)任務(wù)Cron表達(dá)式的優(yōu)雅方案實(shí)例詳解
spring定時(shí)器非常強(qiáng)大,但是有時(shí)候我們需要在不需要重啟應(yīng)用就可以動(dòng)態(tài)的改變Cron表達(dá)式的值,下面這篇文章主要給大家介紹了關(guān)于動(dòng)態(tài)更改Spring定時(shí)任務(wù)Cron表達(dá)式的優(yōu)雅方案,需要的朋友可以參考下2022-12-12java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)詳解及實(shí)例代碼
這篇文章主要介紹了java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02