成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

SpringBoot 如何讀取classpath下的文件

瀏覽:2日期:2023-03-04 13:50:21
SpringBoot 讀取classpath下文件

開發(fā)過程中,必不可少的需要讀取文件,對于打包方式的不同,還會存在一些坑,比如以jar包方式部署時,文件都存在于jar包中,某些讀取方式在開發(fā)工程中都可行,但是打包后,由于文件被保存在jar中,會導致讀取失敗。

這時就需要通過類加載器讀取文件,類加載器可以讀取jar包中的class類當然也可以讀取jar包中的文件。

// 方法1:獲取文件或流this.getClass().getResource('/')+fileName;this.getClass().getResourceAsStream(failName);// 方法2:獲取文件File file = org.springframework.util.ResourceUtils.getFile('classpath:test.txt');// 方法3:獲取文件或流ClassPathResource classPathResource = new ClassPathResource('test.txt');classPathResource .getFile();classPathResource .getInputStream();// >>>>>>>>>>>>>>>> 下面方法可以讀取jar包下文件假設resources目錄下有一個test.txt文件,首先獲得當前的類加載器,通過類加載器讀取文件。// 方法1InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream('test.txt');// 方法2InputStream io = getClass().getClassLoader().getResourceAsStream('test.txt');

注意:

Spring工具類會對classpath路徑做處理,類加載器不會對classpath做處理,因此使用類加載器讀取文件,路徑中不要添加classpath

SpringBoot項目打包成jar后獲取classpath下文件失敗

公司的一個SpringBoot項目中,有需要下載文件模板的需求,按理來說分布式項目文件都應該上傳到文件服務器,但是由于文件不是太多于是就放在了classpath下,在本地開發(fā)的時候發(fā)現(xiàn)都能正常下載文件,但是打包成jar上傳到Linxu測試環(huán)境上就報錯,找不到classpath路徑。

原因

原因是項目打包后Spring試圖訪問文件系統(tǒng)路徑,但無法訪問JAR包中的路徑。我們使用ResourceUtils.getFile('classpath:');這樣的方式是獲取不到路徑的。

解決方案

我們雖然不能直接獲取文件資源路徑,但是我們可以通過流的方式讀取資源,拿到輸入流過后我們就可以對其做操作了。關鍵代碼如下:

ClassPathResource resource = new ClassPathResource('staticpatterntest.txt'); // static/pattern下的 test.txt文件InputStream in = resource.getInputStream(); //獲取文件輸入流示例Demo

1. 在static下新建pattern目錄,并新建一個名為 test.txt的文件

SpringBoot 如何讀取classpath下的文件

2. 新建DownloadController.java

代碼如下:

package com.example.jekins.controller;import org.springframework.core.io.ClassPathResource;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;@RestControllerpublic class DownloadController { @GetMapping('/download/pattern') public void downloadPattern(HttpServletRequest request, HttpServletResponse response){System.out.println('開始下載文件.....');ClassPathResource resource = new ClassPathResource('staticpatterntest.txt');try {//獲取文件輸入流 InputStream in = resource.getInputStream(); //下載文件 downFile('test文件.txt',request,response,in);} catch (IOException e) { e.printStackTrace();} } /** * 下載文件 * @param fileName 下載文件名稱 * @param response 響應 * @throws IOException 異常 */ public static void downFile(String fileName,HttpServletRequest request,HttpServletResponse response,InputStream in) throws IOException {//輸出流自動關閉,java1.7新特性try(OutputStream os = response.getOutputStream()) { fileName = URLEncoder.encode(fileName, 'UTF-8'); response.reset(); response.setHeader('Content-Disposition', 'attachment; filename=' + fileName); response.setContentType('application/octet-stream; charset=UTF-8'); byte[] b = new byte[in.available()]; in.read(b); os.write(b); os.flush();} catch (Exception e) { System.out.println('fileName=' + fileName); e.printStackTrace();} finally { if (in != null) {in.close(); }} }}

3. 測試 使用Maven工具把項目打成jar包

SpringBoot 如何讀取classpath下的文件

在target下生成了jar包

SpringBoot 如何讀取classpath下的文件

進入jar包所在的文件夾,按住shift并右擊,點擊在此處打開命令行窗口。輸入命令啟動項目 java -jar 打包后的文件

SpringBoot 如何讀取classpath下的文件

我設置的端口是8086,瀏覽器地址欄輸入http://127.0.0.1:8086/download/pattern

此時我們可以卡看到test.txt文件下載成功

SpringBoot 如何讀取classpath下的文件

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久午夜电影网| 一区二区三区在线观看动漫| 国产精品亲子乱子伦xxxx裸| 国产精品亚洲第一区在线暖暖韩国 | 欧美经典三级视频一区二区三区| 国产精品一级片| 欧美日韩高清在线| 美女在线一区二区| 久久国产欧美精品| 亚洲一区二区三区国产| 国产精品一区二区三区免费观看 | 成人免费观看av| 欧美一级在线观看| 精品一区二区三区免费| 欧美午夜精品久久久久久超碰| 亚洲va韩国va欧美va| 91久久久久| 亚洲欧美日韩久久精品| 亚洲日本激情| 亚洲午夜精品网| 国产欧美日韩综合一区在线观看| 亚洲欧美视频在线观看视频| 亚洲国产精品一区制服丝袜| 国产精品美女久久福利网站| 欧美午夜久久| 中文字幕在线一区二区三区| 激情欧美日韩一区| 亚洲六月丁香色婷婷综合久久| 欧美日韩无遮挡| 国产精品毛片久久久久久久| 亚洲成色最大综合在线| 亚洲欧美日韩人成在线播放| 国产欧美一区二区三区国产幕精品| 一区二区三区在线观看动漫| 男女精品网站| 美女久久久精品| 欧美绝品在线观看成人午夜影视 | 亚洲精品综合| 亚洲观看高清完整版在线观看| 久久综合中文| 精品中文字幕一区二区| 亚洲欧美亚洲| 99综合在线| 国产农村妇女毛片精品久久麻豆| 欧美日本久久| 亚洲欧美日韩成人高清在线一区| 一区二区国产精品| 国内综合精品午夜久久资源| 一区二区三区成人| 在线观看网站黄不卡| 国产剧情一区二区| 久久久一区二区| 亚洲福利免费| 亚洲不卡av一区二区三区| 欧美日韩中字一区| 成人免费精品视频| 中文字幕一区二区三区不卡| 亚洲激情综合| 免费看日韩a级影片| 日韩午夜中文字幕| 国内一区二区三区在线视频| 一区二区三区不卡视频| 91福利区一区二区三区| 国产成人99久久亚洲综合精品| 亚洲国产高清在线观看视频| 国产亚洲一区在线| 精品系列免费在线观看| 2024国产精品| 国产伦精品一区二区三区视频黑人 | 成人精品国产一区二区4080| 国产精品久久看| 久久综合九色综合久99| 国产a级毛片一区| 国产精品色哟哟网站| 亚欧成人精品| 国产精品一卡二卡| 国产精品福利影院| 在线免费不卡电影| 91视频.com| 亚洲18色成人| 欧美成人精品1314www| 黄色成人在线网站| 老司机午夜精品99久久| 久久久天堂av| 美女爽到呻吟久久久久| 懂色一区二区三区免费观看| 综合色中文字幕| 欧美乱妇一区二区三区不卡视频| 欧美激情性爽国产精品17p| 日韩精品久久理论片| 精品久久久三级丝袜| 亚洲影院在线| 不卡一区二区在线| 亚洲成av人片一区二区三区| 欧美变态tickling挠脚心| 99在线精品视频在线观看| 精品亚洲porn| 亚洲视频一区在线观看| 欧美日韩精品欧美日韩精品 | 亚洲国产岛国毛片在线| 91国内精品野花午夜精品| 欧美 日韩 国产一区二区在线视频| 亚洲成国产人片在线观看| 欧美一卡二卡三卡| 免费久久99精品国产自在现线| 成人精品视频一区二区三区| 亚洲第一福利一区| 欧美精品一区二区在线播放| 亚洲一区二区动漫| caoporn国产一区二区| 午夜精品福利在线| 国产亚洲精品资源在线26u| 一本色道久久综合狠狠躁的推荐| 91在线观看地址| 另类的小说在线视频另类成人小视频在线 | 色爱区综合激月婷婷| 欧美午夜不卡影院在线观看完整版免费 | 国产精品久久777777| 欧美日韩一区二区三区四区| 极品av少妇一区二区| 国产成人精品网址| 婷婷久久综合九色综合伊人色| 国产精品嫩草影院com| 在线成人免费观看| 久久av一区二区三区| 欧美日韩视频在线一区二区观看视频 | 午夜精品亚洲一区二区三区嫩草| 免费高清在线一区| 亚洲欧美日本在线| 欧美激情一区二区三区| 91麻豆精品国产91久久久久| 色婷婷久久综合| 日韩午夜免费| 色综合咪咪久久| 国产九色sp调教91| 日日摸夜夜添夜夜添亚洲女人| 中文乱码免费一区二区| 欧美www视频| 欧美精品日韩精品| 色天使色偷偷av一区二区| 亚洲欧洲一区二区在线观看 | 亚洲影院在线观看| 国产精品久久三区| 久久久激情视频| 日韩精品中文字幕在线不卡尤物| 精品视频免费看| 久久国产日韩| 国产精品入口| 亚洲国产高清视频| 欧美一区激情| va亚洲va日韩不卡在线观看| 国产一区二区美女诱惑| 三级欧美韩日大片在线看| 亚洲综合在线免费观看| 亚洲三级小视频| 国产精品无遮挡| 国产日韩欧美a| 日韩一区二区在线看片| 欧美日韩高清一区二区不卡| 91国偷自产一区二区开放时间| 欧美资源在线| 久久国产日韩欧美| 亚洲一区二区三区涩| 在线精品亚洲一区二区| 欧美私人啪啪vps| 欧美日韩国产不卡在线看| 91视频在线看| 欧美在线国产| 欧美日韩一区在线视频| 午夜精品亚洲| 欧美极品一区二区三区| 欧美jizzhd精品欧美喷水| 91在线观看污| av一区二区不卡| av影院午夜一区| 色综合久久综合| 欧美日韩三区四区| 国色天香一区二区| 亚洲激情精品| 国产精品久久久久久久免费软件| 国产欧美日本在线| 久久岛国电影| 久久综合图片| 欧美性猛片aaaaaaa做受| 欧美视频在线不卡| 欧美三级欧美一级| 欧美片网站yy| 欧美一二区视频| 2020日本不卡一区二区视频| 久久蜜桃香蕉精品一区二区三区| 日韩精品在线一区二区| 久久综合色鬼综合色| 国产精品欧美一级免费| 亚洲欧美一区二区不卡| 亚洲第一成人在线| 久久电影网电视剧免费观看| 国产精品69毛片高清亚洲| 不卡高清视频专区| 欧美午夜视频| 一区二区91|