Reputation: 31278
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
Upvotes: 2
Views: 2297
Reputation: 159844
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);
Upvotes: 3
Reputation: 17319
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();
}
}
Upvotes: 7