Java 讀取linux上的文件


今天遇到一個問題,在Windows環境上開發,測試環境和正式環境服務器都是linux;

一個導出表格的功能,在本地沒問題,發布到linux服務器就報找不到文件問題,但是模板文件已經在linux下了。剛開始以為是模板放的路徑錯了,,確認好幾遍還是有問題。

經過大神的指導,最后發現原來linux文件的文字編碼都是UTF-8。

而我們一般的讀取文件的方法:

  response.setContentType("multipart/form-data");
  response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));//設置網頁顯示的文件編碼
  File file = new File(path);

這里沒有指定讀取文件編碼的情況下,可能是拿不到文件的.

方法一:

  response.setContentType("multipart/form-data"); 
  response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));//設置網頁顯示的文件編碼
  File file = new File( new String(path.getBytes("utf-8"), "utf-8"));

以UTF-8編碼去讀取文件就可以拿到了。

方法二:

  讀取文件路徑不能有中文,就能避免此問題。

 

最后為了和系統其它模塊保持一致,我用了第二種方法。用uuid來保存模板的文件名,同時每個模板數據庫都需要保存一條記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM