簡體   English   中英

改進讀寫Excel文件[POI,Java]

[英]Improvement of reading and writing an Excel file[POI,Java]

是否有可能使用POI庫和Java改進對Excel文件的讀寫? 現在,我的代碼如下所示:

//Reading a file
FileInputStream fin = new FileInputStream(new File(localizationOfExcelFile));
Workbook workbook = new XSSFWorkbook(fin);

//Writing to a file
FileOutputStream fout = new FileOutputStream(new File(localizationOfExcelFile));
workbook.write(fout);
fout.close();

在此先多謝!

如果要寫入高延遲系統(例如網絡硬盤驅動器),則應使用BufferedOutputStream緩沖輸出。 通過在Windows上對網絡硬盤驅動器的緩沖寫入,我將寫入時間縮短了一個數量級,而在將我的寫入緩沖到本地硬盤驅動器時,損失卻微不足道。 性能可能會因硬盤寫入緩存,操作系統和延遲而異,因此如果其他人將使用您的應用程序,則不要僅針對您的設置進行優化。

如果有幫助,請使用BufferedInputStream緩沖輸入,盡管我的測試沒有改善。 正如@Gagravarr建議的那樣,嘗試使用File(而不是FileInputStream)打開工作簿。

如果您不知道要打開Excel 97-2003還是Excel 2007+文件(不要基於文件擴展名猜測;更不用說基於文件前幾個字節的猜測了),請使用WorkbookFactory.create ,盡管您將需要使用FileInputStream來避免在關閉工作簿時(即使不保存)修改工作簿的錯誤

這是很好的做法,關閉流( fin !)當你與他們所做的。 不確定將Streams保持打開狀態是否會影響內存,系統文件句柄資源或垃圾回收,但可能會有所幫助。 主要是可讀性:您要清楚地說明您已經完成了Stream對象。

最后,盡可能隱藏實施細節,甚至在本地也是如此。 盡可能在FileOutputStream fout = ...使用OutputStream fout = new FileOutputStream(...) Java非常冗長:類型聲明定義了變量遵守的協定。 實例化選擇將實現該合同的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM