Java IO: CharArrayWriter
Jakob Jenkov |
The Java CharArrayWriter
class (java.io.CharArrayWriter
) makes it possible to write
characters via the Writer
methods (CharArrayWriter
is a subclass of Writer
)
and convert the written characters into a char
array.
The Java CharArrayWriter
class is handy when you have a component that can only write characters to a
Writer
, but you need the characters as a char
array. Simply pass that component a
CharArrayWriter
and when all characters are written to it, call toCharArray()
on
the CharArrayWriter
.
CharArrayWriter Example
Here is a simple Java CharArrayWriter
example:
CharArrayWriter charArrayWriter = new CharArrayWriter(); charArrayWriter.write("CharArrayWriter"); char[] chars1 = charArrayWriter.toCharArray(); charArrayWriter.close();
This example first creates a Java CharArrayWriter
. Second, the example writes a string to
the CharArrayWriter
. Third, the written characters are obtained as a char
array
by calling the toCharArray()
method on the CharArrayWriter
.
Note: The proper exception handling has been skipped here for the sake of clarity. To learn more about correct exception handling, go to Java IO Exception Handling.
Setting Initial char Array Size
The Java CharArrayWriter
has a constructor that lets you set the initial size of the
char
array used internally to store the written characters.
Setting the initial size does not prevent the CharArrayWriter
from storing more characters than the
initial size. If the number of characters written to the CharArrayWriter
exceed the size of the initial
char
array, a new char
array is created, and all characters are copied into the new array.
Here is how setting the initial char
array size using the CharArrayWriter
constructor looks:
int initialSize = 1024; CharArrayWriter charArrayWriter = new CharArrayWriter(initialSize);
This example creates a CharArrayWriter
with an initial char
array size of 1024.
Closing a CharArrayWriter
When you are finished writing characters to a Java CharArrayWriter
you can close. Since the
CharArrayWriter
is not connected to any underlying system resources, like files or network connections,
it is not crucial to close it.
Closing a CharArrayWriter
is done by calling its close()
method. Here is how
closing a Java CharArrayWriter
looks:
charArrayWriter.close();
You can also use the try-with-resources construct
introduced in Java 7. Here is how to use and close a CharArrayWriter
looks with the try-with-resources
construct:
try(CharArrayWriter charArrayWriter = new CharArrayWriter() ){ charArrayWriter.write("data 1"); charArrayWriter.write("data 2"); charArrayWriter.write("data 3"); char[] chars = charArrayWriter.toCharArray(); }
Notice how there is no longer any explicit close()
method call to the CharArrayWriter
instance.
The try-with-resources construct takes care of that.
Tweet | |
Jakob Jenkov |