The ByteArrayOutputStream class stream creates a buffer in memory and all the data sent to the stream is stored in the buffer.
Following is the list of the constructors to be provided by ByteArrayOutputStream class.
Sr.No. | Constructor & Description |
---|---|
1 |
ByteArrayOutputStream()
This constructor creates a ByteArrayOutputStream having buffer of 32 byte.
|
2 |
ByteArrayOutputStream(int a)
This constructor creates a ByteArrayOutputStream having buffer of the given size.
|
Once you have ByteArrayOutputStream object in hand, then there is a list of helper methods which can be used to write the stream or to do other operations on the stream.
Sr.No. | Method & Description |
---|---|
1 |
public void reset()
This method resets the number of valid bytes of the byte array output stream to zero, so all the accumulated output in the stream will be discarded.
|
2 |
public byte[] toByteArray()
This method creates a newly allocated Byte array. Its size would be the current size of the output stream and the contents of the buffer will be copied into it. Returns the current contents of the output stream as a byte array.
|
3 |
public String toString()
Converts the buffer content into a string. Translation will be done according to the default character encoding. Returns the String translated from the buffer's content.
|
4 |
public void write(int w)
Writes the specified array to the output stream.
|
5 |
public void write(byte []b, int of, int len)
Writes len number of bytes starting from offset off to the stream.
|
6 |
public void writeTo(OutputStream outSt)
Writes the entire content of this Stream to the specified stream argument.
|
Example
Following is an example to demonstrate ByteArrayOutputStream and ByteArrayInputStream.
import java.io.*; public class ByteStreamTest { public static void main(String args[])throws IOException { ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12); while( bOutput.size()!= 10 ) { // Gets the inputs from the user bOutput.write("hello".getBytes()); } byte b [] = bOutput.toByteArray(); System.out.println("Print the content"); for(int x = 0; x < b.length; x++) { // printing the characters System.out.print((char)b[x] + " "); } System.out.println(" "); int c; ByteArrayInputStream bInput = new ByteArrayInputStream(b); System.out.println("Converting characters to Upper case " ); for(int y = 0 ; y < 1; y++ ) { while(( c = bInput.read())!= -1) { System.out.println(Character.toUpperCase((char)c)); } bInput.reset(); } } }
Here is the sample run of the above program −
Output
Print the content h e l l o h e l l o Converting characters to Upper case H E L L O H E L L O