2012-12-01 70 views
2

我正在從一個項目中提取一些數據從許多機器生成的文件(100k +總計15gig)到excel(2003)每行一個文件。在將每行提取的每個文件的數據寫入excel(使用JExcel API)之前,我將內存中的所有文件加載到數組列表中。從90k +文件讀取數據寫入excel後,Java應用程序掛起

一切正常,直到大約90k文件已被讀取和寫入打開的工作簿,然後停止工作。

在所有文件被讀取和提取後,我執行workbook.write()和workbook.close(),因爲當它「掛起」時,沒有任何東西會被寫入磁盤上的實際文件。

沒有錯誤發生。關於解決這個問題的任何想法。提前謝謝了。

+0

你真的需要發佈一些代碼,如果你需要幫助。你有沒有試過調試器? – John3136

+1

你看過機器的性能嗎?你是否分頁到磁盤(例如,VM不是內存不足,但你的RAM已滿?)。 – jefflunt

+6

順便說一句,你爲什麼不在你讀的時候寫出工作簿呢?如果你閱讀所有內容,但正如你所說的那樣,那麼應用程序會失敗90%,至少你會得到90K的工作簿,而不必每次都從頭開始。 – jefflunt

回答

1

有兩種可能出現的問題:

  1. Java或Excel正在運行內存
    • 你可以通過你閱讀每份文件寫入到工作簿,而不是存儲所有這些解決這個問題在內存
  2. 運行Excel出來行
    • 如果是這種情況,有基本上ñ othing你可以做...

爲什麼它需要直接到Excel,反正?你可能會更好的寫整個事情直接到一個CSV文件,Excel知道如何本機打開...

+0

非常感謝@ durron597,我調查了這兩個問題,結果發現excel可能已經耗盡了行...我已經切換到了CSV,但現在情況正常;)謝謝。 – dotKwame

相關問題