我使用下面的方法來讀取文件轉換成JTextArea
:在java中讀取大文本文件,不可行?
public void readFile(File file) throws java.io.FileNotFoundException,
java.io.IOException {
if(file == null) return;
jTextArea1.setText("");
try(BufferedReader reader = new BufferedReader(new FileReader(file))){
String line = "";
while((line=reader.readLine())!=null){
jTextArea.append(line + "\n");
}
}
}
它的工作原理與確定一個正常大小的文件(幾百千字節),但是當我測試的30000行的文件記事本可以在大約5秒內打開42 MB,我的文件讀取器將永久佔用。我等不及它完成;我已經等了大約15-20分鐘,它仍然在工作,消耗了30%的CPU使用量。
您能否給我一個解決方案?我只處理文本文件,而不是二進制文件,而我所知道的全部使用BufferedReader
是最好的。
NIO的文件處理的API將在這裏更適合 –
如果你想真正快速讀/寫一下【JAVA NIO包] [1] [1]:http://stackoverflow.com/ questions/3599711/understanding-java-nio-concepts – Seky