最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決SpringBoot ClassPathResource的大坑(FileNotFoundException)

 更新時(shí)間:2021年06月16日 12:02:24   作者:bannerXu  
這篇文章主要介紹了解決SpringBoot ClassPathResource的大坑(FileNotFoundException),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

FileNotFoundException

SpringBoot 項(xiàng)目將項(xiàng)目打包成jar包,使用ClassPathResource時(shí)使用的是絕對(duì)路徑,直接調(diào)用getFile()方法會(huì)報(bào)

FileNotFoundException

直接上代碼:

通過賦值文件為臨時(shí)文件的方式解決

val resource = ClassPathResource("my.keystore")
val temp = Files.createTempFile("my.keystore", "tmp")
Files.copy(resource.inputStream, temp, StandardCopyOption.REPLACE_EXISTING)
this.getClass().getClassLoader().getResourceAsStream("apiclient_cert.p12");

web項(xiàng)目下讀取classpath下的文件心得

使用SpringBoot遇到的大坑

在讀取springBoot+gradle構(gòu)建的項(xiàng)目時(shí),如果使用傳統(tǒng)的FileInputStream讀取文件流或者ResourceUtils工具類的方式,都會(huì)失敗,下面解釋原因:

一、讀取文件的三種方式:

1. ResourceUtils工具類

import org.springframework.util.ResourceUtils;
//使用:
File file= ResourceUtils.getFile("classpath:test.txt");

2. FileInputStream文件流的方式讀取

(該方式為按行讀取,若不是按行處理,需要像圖中將每行數(shù)據(jù)存在一個(gè)buffer中,然后轉(zhuǎn)成String處理)

3. ClassPathResource獲取文件流的方式

ClassPathResource classPathResource = new ClassPathResource("test.txt");

獲取文件:classPathResource .getFile();

獲取文件流:classPathResource .getInputStream();

二、不同web容器讀取文件的區(qū)別

有兩種常見的web容器:

1. 第一種是普通的web項(xiàng)目,特點(diǎn)是jar/war壓縮包會(huì)隨著容器的啟動(dòng)解壓縮成一個(gè)文件夾,當(dāng)項(xiàng)目訪問的時(shí)候,實(shí)際是訪問文件夾,而非jar或者war包。

該種方式下,用獲取路徑的方法:

this.getClass().getResource("/")+fileName

或者獲取流的方法:

this.getClass().getResourceAsStream(failName);

都可以成功。

2. 第二種是內(nèi)嵌web容器,Spring boot就是內(nèi)嵌web容器,其特點(diǎn)是只有一個(gè)jar文件,在容器啟動(dòng)后不會(huì)解壓縮,項(xiàng)目實(shí)際訪問的就是jar/war包

該種方式最容易遇坑!!最大的坑就是,

this.getClass().getResource("/")+fileName

在本地windows下能完美找到路徑,可是在linux測(cè)試服務(wù)器下就失敗,所以讀取jar中的文件只能用流讀取,不能用file,即只能用方式三讀取。

所以,用spring boot搭建的工程,只能用

classPathResource .getInputStream();

獲取文件流

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

相關(guān)文章

最新評(píng)論

宝坻区| 临桂县| 清原| 南召县| 六枝特区| 永城市| 通州市| 辛集市| 交口县| 阳原县| 怀集县| 深泽县| 道真| 玛纳斯县| 陇西县| 东光县| 淮北市| 鄂托克前旗| 民县| 洪湖市| 水城县| 梁山县| 蓝田县| 南皮县| 堆龙德庆县| 阳江市| 江达县| 定远县| 五指山市| 阳西县| 南阳市| 正安县| 琼中| 上思县| 柳河县| 榆林市| 马公市| 信阳市| 平泉县| 甘孜| 石屏县|