Dumping a Java StringBuilder to File

Patrick picture Patrick · Nov 4, 2009 · Viewed 70.4k times · Source

What is the most efficient/elegant way to dump a StringBuilder to a text file?

You can do:

outputStream.write(stringBuilder.toString().getBytes());

But is this efficient for a very long file?

Is there a better way?

Answer

Kevin Bourrillion picture Kevin Bourrillion · Nov 5, 2009

As pointed out by others, use a Writer, and use a BufferedWriter, but then don't call writer.write(stringBuilder.toString()); instead just writer.append(stringBuilder);.

EDIT: But, I see that you accepted a different answer because it was a one-liner. But that solution has two problems:

  1. it doesn't accept a java.nio.Charset. BAD. You should always specify a Charset explicitly.

  2. it's still making you suffer a stringBuilder.toString(). If the simplicity is really what you're after, try the following from the Guava project:

Files.write(stringBuilder, file, Charsets.UTF_8)