亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何解決Java代碼讀取文件緩存的問題

發布時間:2021-05-30 18:00:17 來源:億速云 閱讀:285 作者:小新 欄目:開發技術

小編給大家分享一下如何解決Java代碼讀取文件緩存的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

一、業務場景

最近遇到了一個Java文件讀取的緩存問題,打遠程斷點出現的也是原來的老代碼參數,好在晚上十點突然找到了解決方案,豁然開朗,現整理分享思路,希望對遇到同樣文件讀取緩存問題的你有幫助

如何解決Java代碼讀取文件緩存的問題

我更新幾次插件包后,服務器也緩存也清理了

如何解決Java代碼讀取文件緩存的問題

我本地用postman調用測試,下載的文件是新文件,但是上線后發現下載下來的文件是老文件

下載下來的文件還是原來的文件,文件大小28.5K,我動態寫入部分數據,按道理下載下來的文件大小應該比這個大

如何解決Java代碼讀取文件緩存的問題

業務場景: 我現在需要獲取一個Java項目resource目錄下的Excel文件,然后往此Excel文件的第二個sheet頁動態插入部分數據

實踐情況:我在如何獲取此文件的相對路徑情況下花費了很多的時間,原來定義了一個參數String path和String realpath打完包驗證發現線下是好的,服務器不行,我將對應代碼移除

更新后的方法:我使用新的方法動態獲取當前文件,將此文件轉換為流傳入對應的對象;

問題: 本地測試可以動態的導出Excel文件,但是代碼上線,下載下來的模板是老項目,遠程斷點出現原來老的定義的參數

來看看我遠程斷點的相關情況

我是讀取一個文件轉行成文件流然后放入指定的Workbook中(即讀取一個已有Excel文件)

如何解決Java代碼讀取文件緩存的問題

在這個讀取的過程中我發現了如下這些屬性:path,upload

如何解決Java代碼讀取文件緩存的問題

還有realpath以及返回為空的wb

如何解決Java代碼讀取文件緩存的問題

這些屬性我是我上午測試的時候定義的,但是此時已經不使用拼接路徑的方式去構建workbook文件了,是將流放入workbook對象中構建文件

原來的解決思路: 我本地沒問題,我就覺得是緩存的原因:
1、清理卸載插件重新安裝
2、清理瀏覽器緩存,清理Tomcat緩存,重啟Tomcat
3、都試過后還不行就重啟reboot服務器

但是不管我怎么操作,服務器依然走老代碼,下載下來老的模板

二、解決方案

如何解決問題?

自己創建一個新的文件夾,將自己的文件xlsx文件放入其中,讀取文件路徑的地方更新成讀取新的文件路徑

如原來是

InputStream inputstream = this.getClass().getClassLoader().getResourceAsStream("hello/Test.xlsx");

現在創建一個新的文件夾,放入原文件如 word/Test.xlsx ,然后讀取新的路徑

 InputStream inputstream = this.getClass().getClassLoader().getResourceAsStream("word/Test.xlsx");

打包再上線測試

反思:具體問題原因肯定是打包的時候文件被緩存到哪里了,沒清理干凈,更新一下新路徑,走新的讀取方式問題就解決了

總結:創建新的路徑,走新的讀取方式

三、文件讀取

項目之前是靜態下載模板的即前端靜態的下載

window.location.href = url

此業務是先讀取,再下載,如何讀取自己Java項目中對應相對位置的文件呢 ?

InputStream inputstream = this.getClass().getClassLoader().getResourceAsStream("hello/Test.xlsx");

來我們驗證一下我們是否讀取了

如何解決Java代碼讀取文件緩存的問題

如果換一個不存在的路徑或者文件名,效果如下

如何解決Java代碼讀取文件緩存的問題

如上即我們成功讀取到了此文件

自測代碼如下

public class TestPath {


    InputStream getFileStream(){
        InputStream inputstream = this.getClass().getClassLoader().getResourceAsStream("helloWord/Test.xlsx");
        return  inputstream;
    }

    public static void main(String[] args) {
        TestPath stream = new TestPath();
        System.out.println( stream.getFileStream());
    }
}

接下來也會整理一下Java讀取文件以及導入導出Excel表格相關問題,歡迎同步溝通學習交流!

看完了這篇文章,相信你對“如何解決Java代碼讀取文件緩存的問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

方山县| 汉寿县| 都昌县| 稻城县| 静宁县| 安宁市| 中牟县| 伽师县| 平原县| 尼勒克县| 蒲城县| 大埔县| 定兴县| 安陆市| 青铜峡市| 湖南省| 海淀区| 兴和县| 炎陵县| 忻城县| 甘洛县| 和政县| 台东市| 宣武区| 湾仔区| 塔城市| 祥云县| 资源县| 万州区| 高密市| 平度市| 涞源县| 崇州市| 太谷县| 鄯善县| 凤台县| 大埔区| 建瓯市| 安康市| 中阳县| 郯城县|