SpringBoot如何讀取resources目錄下的文件
SpringBoot讀取resources目錄下的文件
最近實(shí)驗(yàn)室的項(xiàng)目中遇到一個(gè)問題:需要讀取SpringBoot項(xiàng)目中resources目錄下的文件,現(xiàn)在把我踩過的坑寫出來。
需要讀取jar包中的resources文件的,第三種方法是可以的,前兩個(gè)可以直接跳過
SpringBoot項(xiàng)目讀取resources目錄下的文件,通過查閱資料和以往經(jīng)驗(yàn),剛開始采用Java傳統(tǒng)的讀取文件的方式,發(fā)現(xiàn)在IDEA上是可以讀取成功的,但是項(xiàng)目打包jar后在服務(wù)器上運(yùn)行找不到文件。
于是換到另外兩種方式,下面依次說明這三種方式:目錄結(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注解無法加載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)文章
SpringBoot通過@MatrixVariable進(jìn)行傳參詳解
這篇文章主要介紹了SpringBoot使用@MatrixVariable傳參,文章圍繞@MatrixVariable展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
SpringBoot如何處理@KafkaListener消息
Spring通過KafkaMessageListenerContainer、ConcurrentMessageListenerContainer等組件實(shí)現(xiàn)Kafka消息的監(jiān)聽和處理,并通過@KafkaListener注解將業(yè)務(wù)邏輯與Kafka消費(fèi)者連接起來,Spring?Boot自動(dòng)配置Kafka相關(guān)組件,簡(jiǎn)化了Kafka的使用2024-12-12
IDEA中springboot的熱加載thymeleaf靜態(tài)html頁(yè)面的方法
這篇文章主要介紹了IDEA中springboot的熱加載thymeleaf靜態(tài)html頁(yè)面的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Java中ArrayList 和 HashMap 自動(dòng)擴(kuò)容機(jī)制詳解
本文深入分析了Java集合框架中ArrayList和HashMap的自動(dòng)擴(kuò)容機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
SpringBoot日志進(jìn)階實(shí)戰(zhàn)之Logback配置經(jīng)驗(yàn)和方法
本文給大家介紹在SpringBoot中使用Logback配置日志的經(jīng)驗(yàn)和方法,并提供了詳細(xì)的代碼示例和解釋,包括:滾動(dòng)文件、異步日志記錄、動(dòng)態(tài)指定屬性、日志級(jí)別、配置文件等常用功能,覆蓋日常Logback配置開發(fā)90%的知識(shí)點(diǎn),感興趣的朋友跟隨小編一起看看吧2023-06-06

