中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

淺談web項目讀取classpath路徑下面的文件

發布時間:2020-10-11 14:17:28 來源:腳本之家 閱讀:149 作者:Mr_伍先生 欄目:編程語言

本文主要研究的是web項目下讀取classpath路徑下的文件的問題,具體如下。

首先分兩大類按web容器分類

一種是普通的web項目,像用Tomcat容器,特點是壓縮包隨著容器的啟動會解壓縮成一個文件夾,項目訪問的時候,實際是去訪問文件夾,而不是jar或者war包。

這種的無論你是用獲取路徑的方法this.getClass().getResource("/")+fileName

獲取流的方法this.getClass().getResourceAsStream(failName);

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

或者

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

獲取文件:classPathResource .getFile();

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

第二種是內嵌web容器,其特點是只有一個jar文件,在容器啟動后不會解壓縮,項目實際訪問時jar包或者war包

這種最容易遇坑,最大的坑就是,用第一種方式讀取,在eclipse,本地調試,完美運行,到linux環境下,就不行.

首先用獲取路徑的方法this.getClass().getResource("/")+fileName,獲取流的方法this.getClass().getResourceAsStream(failName);

在本地運行時,絕壁能找到,你打印出來路徑,沒錯,是咱們eclipse的工作目錄,項目目錄,但是在target目錄下。

現在給你分析為什么去到線上,就GG了,很簡單,線上內嵌的工程,我們只會放一個jar文件上去,我理解是jar里面的路徑是獲取不到的,jar是封閉性東西吧,不像文件夾,總不能c:/home/xx.jar/file.txt

讀取jar里面的文件,我們只能用流去讀取,不能用file,文件肯定要牽扯路徑,jar那個路徑剛剛我已經拼出來了

jar里面文件讀取方式:

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

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

總結

以上就是本文關于淺談web項目讀取classpath路徑下面的文件的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

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

AI

刚察县| 崇文区| 沛县| 墨竹工卡县| 台中县| 都兰县| 永嘉县| 松桃| 平昌县| 沅江市| 抚顺市| 敖汉旗| 揭阳市| 绍兴县| 广安市| 乌兰察布市| 烟台市| 昭觉县| 定远县| 永善县| 满洲里市| 浦县| 定兴县| 奈曼旗| 秦安县| 洛隆县| 河池市| 德昌县| 开封县| 黑龙江省| 海宁市| 高碑店市| 逊克县| 朝阳区| 景东| 盐亭县| 临安市| 庆城县| 利辛县| 康马县| 福清市|