91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot ClassPathResource出現FileNotFoundException怎么解決

發布時間:2021-06-16 13:43:26 來源:億速云 閱讀:1028 作者:chen 欄目:開發技術

本篇內容主要講解“SpringBoot ClassPathResource出現FileNotFoundException怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringBoot ClassPathResource出現FileNotFoundException怎么解決”吧!

FileNotFoundException

SpringBoot 項目將項目打包成jar包,使用ClassPathResource時使用的是絕對路徑,直接調用getFile()方法會報

FileNotFoundException

直接上代碼:

通過賦值文件為臨時文件的方式解決

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項目下讀取classpath下的文件心得

使用SpringBoot遇到的大坑

在讀取springBoot+gradle構建的項目時,如果使用傳統的FileInputStream讀取文件流或者ResourceUtils工具類的方式,都會失敗,下面解釋原因:

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

1. ResourceUtils工具類

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

2. FileInputStream文件流的方式讀取

SpringBoot ClassPathResource出現FileNotFoundException怎么解決

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

3. ClassPathResource獲取文件流的方式

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

獲取文件:classPathResource .getFile();

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

二、不同web容器讀取文件的區別

有兩種常見的web容器:

1. 第一種是普通的web項目,特點是jar/war壓縮包會隨著容器的啟動解壓縮成一個文件夾,當項目訪問的時候,實際是訪問文件夾,而非jar或者war包。

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

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

或者獲取流的方法:

this.getClass().getResourceAsStream(failName);

都可以成功。

2. 第二種是內嵌web容器,Spring boot就是內嵌web容器,其特點是只有一個jar文件,在容器啟動后不會解壓縮,項目實際訪問的就是jar/war包

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

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

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

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

classPathResource .getInputStream();

到此,相信大家對“SpringBoot ClassPathResource出現FileNotFoundException怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日照市| 南涧| 台州市| 道孚县| 工布江达县| 东方市| 顺昌县| 双峰县| 马鞍山市| 舟山市| 银川市| 密云县| 威宁| 淄博市| 凉城县| 资阳市| 和林格尔县| 榆树市| 昂仁县| 武邑县| 旺苍县| 兴和县| 靖西县| 横山县| 廊坊市| 乡宁县| 义乌市| 郸城县| 罗田县| 江安县| 桑植县| 惠州市| 北流市| 哈尔滨市| 平度市| 锡林浩特市| 阳曲县| 张掖市| 新田县| 沽源县| 左贡县|