欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot讀取文件,打成jar包后訪問不到的解決

 更新時間:2021年07月03日 16:00:49   作者:WoddenFish  
這篇文章主要介紹了springboot讀取文件,打成jar包后訪問不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot讀取文件,打成jar包后訪問不到

最新開發(fā)出現(xiàn)一種情況,springboot打成jar包后讀取不到文件,原因是打包之后,文件的虛擬路徑是無效的,只能通過流去讀取。

文件在resources下

public void test() {
  List<String> names = new ArrayList<>();
  InputStreamReader read = null;
  try {
   ClassPathResource resource = new ClassPathResource("name.txt");
 
   InputStream inputStream = resource.getInputStream();
   read = new InputStreamReader(inputStream, "utf-8");
   BufferedReader bufferedReader = new BufferedReader(read);
   String txt = null;
   while ((txt = bufferedReader.readLine()) != null) {
    if (StringUtils.isNotBlank(txt)) {
     names.add(txt);
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (read != null) {
    try {
     read.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }

springboot打jar包后臺無法訪問靜態(tài)文件夾

1.ResourceUtils

平常我們寫spring boot 項(xiàng)目的時候偶爾會在后臺用到classpath 底下的文件,一般我們都是這樣寫的

File file = ResourceUtils.getFile("classpath:static/image/image");

這樣情況下本來是沒啥問題的。但是用 打jar 包 運(yùn)行以后就會找不到這個文件。

Resource下的文件是存在于jar這個文件里面,在磁盤上是沒有真實(shí)路徑存在的,它其實(shí)是位于jar內(nèi)部的一個路徑。所以通過ResourceUtils.getFile或者this.getClass().getResource("")方法無法正確獲取文件。

對于這種情況。有時候會把項(xiàng)目文檔放到項(xiàng)目外邊,但是這樣很容易把這些東西誤刪除掉。

2.ClassPathResource

 ClassPathResource cpr = new ClassPathResource("static/image/image/kpg");
 InputStream in = cpr.getInputStream();

3. ResourceLoader

 public class ResourceRenderer {
 public static InputStream resourceLoader(String fileFullPath) throws IOException {
        ResourceLoader resourceLoader = new DefaultResourceLoader();
        return resourceLoader.getResource(fileFullPath).getInputStream();
    }
}

用法

InputStream in = ResourceRenderer.resourceLoader("classpath:static/image/image");

這樣就完美的解決了jar包底下路徑無法訪問的問題。

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

相關(guān)文章

  • 基于java語言實(shí)現(xiàn)快遞系統(tǒng)

    基于java語言實(shí)現(xiàn)快遞系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于java語言實(shí)現(xiàn)快遞系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 圖書信息管理java實(shí)現(xiàn)代碼

    圖書信息管理java實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了圖書信息管理java實(shí)現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java中空指針異常的幾種解決方案

    Java中空指針異常的幾種解決方案

    這篇文章主要介紹了Java中空指針異常的幾種解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Spring aop失效的幾種解決方案

    Spring aop失效的幾種解決方案

    這篇文章主要介紹了Spring aop失效的幾種解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • java微信企業(yè)號開發(fā)之開發(fā)模式的開啟

    java微信企業(yè)號開發(fā)之開發(fā)模式的開啟

    這篇文章主要為大家詳細(xì)介紹了java微信企業(yè)號開發(fā)之開發(fā)模式的開啟方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringCloud之Zuul服務(wù)網(wǎng)關(guān)詳解

    SpringCloud之Zuul服務(wù)網(wǎng)關(guān)詳解

    這篇文章主要介紹了SpringCloud之Zuul服務(wù)網(wǎng)關(guān)詳解,服務(wù)網(wǎng)關(guān)是微服務(wù)架構(gòu)中一個不可或缺的部分,通過服務(wù)網(wǎng)關(guān)統(tǒng)一向外系統(tǒng)提供REST?API的過程中,除了具備服務(wù)路由、均衡負(fù)載功能之外,它還具備了權(quán)限控制(鑒權(quán))等功能,需要的朋友可以參考下
    2023-08-08
  • Spring Boot 自動配置之條件注解淺析

    Spring Boot 自動配置之條件注解淺析

    這篇文章主要介紹了Spring Boot 自動配置之條件注解淺析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • spring?boot?mybatis日志輸出到控制臺的方法實(shí)踐

    spring?boot?mybatis日志輸出到控制臺的方法實(shí)踐

    在開發(fā)過程中我們往往需要打印出SQL語句,這樣就方便我們監(jiān)控問題,本文主要介紹了spring?boot?mybatis日志輸出到控制臺的方法實(shí)踐,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Java正則表達(dá)式,提取雙引號中間的部分方法

    Java正則表達(dá)式,提取雙引號中間的部分方法

    今天小編就為大家分享一篇Java正則表達(dá)式,提取雙引號中間的部分方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • springboot排除某些自動配置的操作方法

    springboot排除某些自動配置的操作方法

    Spring Boot 提供的自動配置非常強(qiáng)大,某些情況下,自動配置的功能可能不符合我們的需求,需要我們自定義配置,這個時候就需要排除/禁用Spring Boot 某些類的自動化配置了,本文給大家介紹springboot排除某些自動配置的方法,感興趣的朋友一起看看吧
    2023-08-08

最新評論