문제

I am curious what the most efficient way is to read a text file (do not worry about size, it is reasonably small so java.io is fine) and then dump its contents into a JTextArea for display.

E.g. can I somehow consume the entire file in a single string and then use JTextArea.setText to display it or should I read line by line or byte arrays and populate them into a StringBuffer and then set the text area to that?

Thanks

도움이 되었습니까?

해결책

You can use JTextComponent.read(Reader, Object) and pass it a FileReader. Just do this:

Java 7 -- try-resource block

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

Java 6 -- try-finally block

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

다른 팁

Rather than reading the full contents of the file, you could allow the JTextArea component to use a Reader to read the file's InputStream:

FileReader fr = new FileReader(fileName);
textArea.read(fr, null);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top