读取文本文件并将内容转储到JTextArea的最有效方法

时间:2012-11-01 23:01:03

标签: java swing jtextarea java-io jtextcomponent

我很好奇读取文本文件最有效的方法是什么(不要担心大小,它相当小,所以java.io很好),然后将其内容转储到JTextArea中显示。

E.g。我可以以某种方式使用单个字符串中的整个文件,然后使用JTextArea.setText来显示它,或者我应该逐行读取还是字节数组并将它们填充到StringBuffer中,然后将文本区域设置为?

由于

2 个答案:

答案 0 :(得分:7)

您可以使用JTextComponent.read(Reader, Object)并将其传递给FileReader。就这样做:

Java 7 - 尝试资源块

try (FileReader reader = new FileReader("myfile.txt")) {
    textArea.read(reader, null);
}

Java 6 - try-finally阻止

FileReader reader = null;
try {
    reader = new FileReader("myfile.txt");
    textArea.read(reader, null);
} finally {
    if (reader != null) {
        reader.close();
    }
}

答案 1 :(得分:3)

您可以允许JTextArea组件使用Reader来读取文件InputStream,而不是阅读文件的完整内容:

FileReader fr = new FileReader(fileName);
textArea.read(fr, null);