Java IO: StringWriter
Jakob Jenkov |
The Java StringWriter class (java.io.StringWriter) enables you to obtain the characters
written to a Writer as a String. The StringWriter is useful if you have
a component that only can write data to a Writer but you need that data as a String.
StringWriter Example
Here is a simple Java StringWriter example:
StringWriter stringWriter = new StringWriter();
//write characters to writer.
stringWriter.write("This is a text");
String data = stringWriter.toString();
StringBuffer dataBuffer = stringWriter.getBuffer();
stringWriter.close();
This example first creates a StringWriter. Second, the example writes a String to the
StringWriter.
Third the characters written to the StringWriter are obtained via the two
methods toString() and getBuffer(). You only need to use one of these two methods,
but both are showed so you know they both exist.
The method toString() returns the characters written to the StringWriter as a
String.
The method getBuffer() returns the StringBuffer
used by the StringWriter to build the string from the written characters.
Closing a StringWriter
When you are finished writing characters to a Java StringWriter you can close. Since the
StringWriter is not connected to any underlying system resources, like files or network connections,
it is not crucial to close it.
Closing a StringWriter is done by calling its close() method. Here is how
closing a Java StringWriter looks:
stringWriter.close();
You can also use the try-with-resources construct
introduced in Java 7. Here is how to use and close a StringWriter looks with the try-with-resources
construct:
try(StringWriter stringWriter =
new StringWriter() ){
stringWriter.write("data 1");
stringWriter.write("data 2");
stringWriter.write("data 3");
String writtenText = stringWriter.toString();
}
Notice how there is no longer any explicit close() method call to the StringWriter instance.
The try-with-resources construct takes care of that.
| Tweet | |
Jakob Jenkov | |











