【发布时间】:2015-08-01 12:31:28
【问题描述】:
我想将 10-15k 行之类的大文件读取到 jtextarea。 除此之外,我还必须将每一行添加到 List 并突出显示 jtextarea 中的一些特定行。
我现在尝试的是,我将文件传递到 FileReader 到 BufferedReader。在我的 SwingWorker 中,我调用了 doBackground 方法:
while ((line = br.readLine()) != null) {
textArea.append(line);
textArea.append(System.getProperty("line.separator"));
list.add(line);
highlightLine(lineNumber);
}
当我运行程序并选择文件并打开读取过程时,它会立即加载多达 700 行,然后程序变慢并每秒加载 10 行。
我的另一个想法是,使用 JTextComponent 读取方法读取整个文件(这似乎比 setText 更快,然后追加每一行),然后再次读取整个文件或遍历 jtextarea 中的每一行并将该行添加到 List并且还突出显示,我认为这不是很有效。你有什么建议?
【问题讨论】: