Java ByteArrayOutputStream
Jakob Jenkov |
The Java ByteArrayOutputStream class, java.io.ByteArrayOutputStream of the Java IO
API enables you to capture data written to a stream in a byte array. You write your data to the
ByteArrayOutputStream and when you are done you call the
its toByteArray() method to obtain all the written data in a byte array.
The Java ByteArrayOutputStream can be handy in situations where you have a component that outputs its data
to an OutputStream, but where you need the data written as a byte array.
ByteArrayOutputStream Example
Here is a simple ByteArrayOutputStream example:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); //write data to byteArrayOutputStream byte[] bytes = byteArrayOutputStream.toByteArray();
Create a ByteArrayOutputStream
To use a Java ByteArrayOutputStream you must first create an instance of it. Here is how you create an instance
of a ByteArrayOutputStream :
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Write Bytes to ByteArrayOutputStream
Since the Java ByteArrayOutputStream class is a subclass of the
Java OutputStream class, you write bytes to it using the same
write methods that OutputStream has:
- write(int byteToWrite)
- write(byte[] bytesToWrite, int offset, int length)
The the Java OutputStream Tutorial for more information about how to write
bytes to an OutputStream.
toByteArray()
Once you have finished writing to the ByteArrayOutputStream you can obtain all the bytes written
as a Java byte array, using the ByteArrayOutputStream toByteArray() method. Here is
an example:
byte[] bytes = byteArrayOutputStream.toByteArray();
A Note on close()
Being a subclass of OutputStream the ByteArrayOutputStream also has a close()
method. But calling the close() method has no effect on the ByteArrayOutputStream.
| Tweet | |
Jakob Jenkov | |











