2014-09-12 49 views
1

我想使用Swing組件在JTextArea中快速加載大文本文件。我試圖加載一個100MB的文件,並在幾秒鐘內加載。但是,當我嘗試加載超過200MB的文件時,需要超過5分鐘。如何在JTextArea中加載大文本文件

如何加載大型數據文件?閱讀我使用BufferedReader和顯示我使用JTextAreasetText()方法。

+1

看到可能[複製](http://stackoverflow.com/q/25526833/2587435) – 2014-09-12 12:18:39

+1

參見[這](http://stackoverflow.com/a/25526869/3755692)答案 – msrd0 2014-09-12 12:19:52

+0

已經我試着用的SwingWorker但是,結果也是一樣。這就是爲什麼我再次提出問題的原因。感謝您的回覆。請嘗試一下。 – user3912886 2014-09-12 12:22:46

回答

0

如果僅用於顯示內容,則可以使用不帶網格線的JTable。然後,您可以將RandomAccessFile與文件通道的MappedByteBuffer一起使用。而對於表格行,只有每行的文件位置列表。

這應該是相當快的,甚至可以實現有限的編輯,保持一系列更改,如行插入/刪除/修改。

Code for files < 2GB

+0

我想在JTextArea中加載文件。如何使用JTable將大文本文件加載到JTextArea中。 – user3912886 2014-09-13 03:46:02

+0

好的,請嘗試'byte [] data = Files.readAllBytes(file.toPath())',從中創建一個String,然後設置setText()。這應該是最快的垃圾收集。 – 2014-09-13 08:23:37

+0

以上聲明也與上述提到的時間相同,請再次檢查。 – user3912886 2014-09-16 12:02:02