public class

ByteArrayOutputStream

extends OutputStream
java.lang.Object
   ↳ java.io.OutputStream
     ↳ java.io.ByteArrayOutputStream

Class Overview

A specialized OutputStream for class for writing content to an (internal) byte array. As bytes are written to this stream, the byte array may be expanded to hold more bytes. When the writing is considered to be finished, a copy of the byte array can be requested from the class.

Summary

Fields
protected byte[] buf The byte array containing the bytes written.
protected int count The number of bytes written.
Public Constructors
ByteArrayOutputStream()
Constructs a new ByteArrayOutputStream with a default size of 32 bytes.
ByteArrayOutputStream(int size)
Constructs a new ByteArrayOutputStream with a default size of size bytes.
Public Methods
void close()
Closes this stream.
synchronized void reset()
Resets this stream to the beginning of the underlying byte array.
int size()
Returns the total number of bytes written to this stream so far.
synchronized byte[] toByteArray()
Returns the contents of this ByteArrayOutputStream as a byte array.
String toString(int hibyte)
This method is deprecated. Use toString().
String toString(String enc)
Returns the contents of this ByteArrayOutputStream as a string converted according to the encoding declared in enc.
String toString()
Returns the contents of this ByteArrayOutputStream as a string.
synchronized void write(byte[] buffer, int offset, int len)
Writes count bytes from the byte array buffer starting at offset index to this stream.
synchronized void write(int oneByte)
Writes the specified byte oneByte to the OutputStream.
synchronized void writeTo(OutputStream out)
Takes the contents of this stream and writes it to the output stream out.
[Expand]
Inherited Methods
From class java.io.OutputStream
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable

Fields

protected byte[] buf

Since: API Level 1

The byte array containing the bytes written.

protected int count

Since: API Level 1

The number of bytes written.

Public Constructors

public ByteArrayOutputStream ()

Since: API Level 1

Constructs a new ByteArrayOutputStream with a default size of 32 bytes. If more than 32 bytes are written to this instance, the underlying byte array will expand.

public ByteArrayOutputStream (int size)

Since: API Level 1

Constructs a new ByteArrayOutputStream with a default size of size bytes. If more than size bytes are written to this instance, the underlying byte array will expand.

Parameters
size initial size for the underlying byte array, must be non-negative.
Throws
IllegalArgumentException if size < 0.

Public Methods

public void close ()

Since: API Level 1

Closes this stream. This releases system resources used for this stream.

Throws
IOException if an error occurs while attempting to close this stream.

public synchronized void reset ()

Since: API Level 1

Resets this stream to the beginning of the underlying byte array. All subsequent writes will overwrite any bytes previously stored in this stream.

public int size ()

Since: API Level 1

Returns the total number of bytes written to this stream so far.

Returns
  • the number of bytes written to this stream.

public synchronized byte[] toByteArray ()

Since: API Level 1

Returns the contents of this ByteArrayOutputStream as a byte array. Any changes made to the receiver after returning will not be reflected in the byte array returned to the caller.

Returns
  • this stream's current contents as a byte array.

public String toString (int hibyte)

Since: API Level 1

This method is deprecated.
Use toString().

Returns the contents of this ByteArrayOutputStream as a string. Each byte b in this stream is converted to a character c using the following function: c == (char)(((hibyte & 0xff) << 8) | (b & 0xff)). This method is deprecated and either toString() or toString(String) should be used.

Parameters
hibyte the high byte of each resulting Unicode character.
Returns
  • this stream's current contents as a string with the high byte set to hibyte.

public String toString (String enc)

Since: API Level 1

Returns the contents of this ByteArrayOutputStream as a string converted according to the encoding declared in enc.

Parameters
enc a string representing the encoding to use when translating this stream to a string.
Returns
  • this stream's current contents as an encoded string.
Throws
UnsupportedEncodingException if the provided encoding is not supported.

public String toString ()

Since: API Level 1

Returns the contents of this ByteArrayOutputStream as a string. Any changes made to the receiver after returning will not be reflected in the string returned to the caller.

Returns
  • this stream's current contents as a string.

public synchronized void write (byte[] buffer, int offset, int len)

Since: API Level 1

Writes count bytes from the byte array buffer starting at offset index to this stream.

Parameters
buffer the buffer to be written.
offset the initial position in buffer to retrieve bytes.
len the number of bytes of buffer to write.
Throws
NullPointerException if buffer is null.
IndexOutOfBoundsException if offset < 0 or len < 0, or if offset + len is greater than the length of buffer.

public synchronized void write (int oneByte)

Since: API Level 1

Writes the specified byte oneByte to the OutputStream. Only the low order byte of oneByte is written.

Parameters
oneByte the byte to be written.

public synchronized void writeTo (OutputStream out)

Since: API Level 1

Takes the contents of this stream and writes it to the output stream out.

Parameters
out an OutputStream on which to write the contents of this stream.
Throws
IOException if an error occurs while writing to out.