Frage

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

War es hilfreich?

Lösung

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();
    }
}

Andere Tipps

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top