SpringBoot打包后無法讀取到resource下的資源文件的解決
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、問題描述
今天在做項(xiàng)目時(shí)發(fā)現(xiàn)對于SpringBoot獲取資源文件這一塊知識比較模糊,查詢資料后記錄以備后需。
開始想的是獲取到資源文件絕對路徑,然后通過IO流的方式讀取對應(yīng)位置文件內(nèi)容,但是在打包運(yùn)行時(shí)報(bào)錯找不到對應(yīng)位置的文件資源。

二、問題解決

開發(fā)環(huán)境可以通過下述方式來讀取文件test.txt:
1. 傳統(tǒng)Java方式:
File file = new File("src/main/resources/static/assets/test.txt");
InputStream inputStream = new InputStream(file);這種方式開發(fā)環(huán)境可用,打成jar包后報(bào)錯。
2. ResourceUtils工具類:
File file = ResourceUtils.getFile("classpath:static/assets/test.txt");
InputStream inputStream = new InputStream(file);這種方式開發(fā)環(huán)境可用,打成jar包后報(bào)錯,因?yàn)閖ar包中的文件結(jié)構(gòu)不會從src開始,百度查詢后jar包中的資源必須以流的方式來讀取。
3. ClassPathResource類:
ClassPathResource classpathResource = new ClassPathResource("static/assets/test.txt");
InputStream inputStream = classpathResource.getInputStream();這種方法 開發(fā)環(huán)境和jar包都可以使用。
三、問題總結(jié)
1. 線上內(nèi)嵌的工程,我們只會放一個jar文件上去,我理解是jar里面的路徑是獲取不到的,jar是封閉性東西吧,不像文件夾,總不能c:/home/xx.jar/file.txt。只能通過流的方式來讀取。
2. jar里面文件讀取方式:
ClassPathResource classPathResource = new ClassPathResource(“test.txt”);
獲取文件流:
classPathResource .getInputStream();
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中MyBatis使用自定義TypeHandler的實(shí)現(xiàn)
本文主要介紹了SpringBoot中MyBatis使用自定義TypeHandler,當(dāng)默認(rèn)的類型映射不能滿足需求時(shí),自定義?TypeHandler?就非常有用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08
mybatis collection關(guān)聯(lián)查詢多個參數(shù)方式
在使用MyBatis進(jìn)行關(guān)聯(lián)查詢時(shí),往往需要根據(jù)多個參數(shù)進(jìn)行查詢,例如,使用evtId和businessType作為查詢條件,同時(shí)在resultMap中配置id和businessType1作為結(jié)果映射,這種情況下,可以通過<sql>標(biāo)簽定義參數(shù)模板,或者使用@Param注解指定參數(shù)名稱2024-10-10
Java中List數(shù)據(jù)去重的3種有效方法總結(jié)
在Java編程中,List集合是一種常用的數(shù)據(jù)結(jié)構(gòu),它允許我們存儲和操作一組有序的對象,這篇文章主要介紹了Java中List數(shù)據(jù)去重的3種有效方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-02-02
SpringBoot使用Thymeleaf模板引擎訪問靜態(tài)html的過程
這篇文章主要介紹了SpringBoot使用Thymeleaf模板引擎訪問靜態(tài)html的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動的問題
這篇文章主要介紹了解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動的問題,需要的朋友可以參考下2020-12-12
Springboot解決no main manifest attribute錯誤
在開發(fā)Springboot項(xiàng)目時(shí),使用java -jar命令運(yùn)行jar包可能出現(xiàn)no main manifest attribute錯誤,本文就來介紹一下該錯誤的解決方法,感興趣的可以了解一下2024-09-09

