org.apache.cassandra.io.util
Class FastByteArrayOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.cassandra.io.util.FastByteArrayOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable
Direct Known Subclasses:
OutputBuffer

public class FastByteArrayOutputStream
extends java.io.OutputStream

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.

See Also:
ByteArrayOutputStream

Field Summary
protected  byte[] buf
          The byte array containing the bytes written.
protected  int count
          The number of bytes written.
 
Constructor Summary
FastByteArrayOutputStream()
          Constructs a new ByteArrayOutputStream with a default size of 32 bytes.
FastByteArrayOutputStream(int size)
          Constructs a new ByteArrayOutputStream with a default size of size bytes.
 
Method Summary
 void close()
          Closes this stream.
 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.
 byte[] toByteArray()
          Returns the contents of this ByteArrayOutputStream as a byte array.
 java.lang.String toString()
          Returns the contents of this ByteArrayOutputStream as a string.
 java.lang.String toString(int hibyte)
          Deprecated. Use toString().
 java.lang.String toString(java.lang.String enc)
          Returns the contents of this ByteArrayOutputStream as a string converted according to the encoding declared in enc.
 void write(byte[] buffer, int offset, int len)
          Writes count bytes from the byte array buffer starting at offset index to this stream.
 void write(int oneByte)
          Writes the specified byte oneByte to the OutputStream.
 void writeTo(java.io.OutputStream out)
          Takes the contents of this stream and writes it to the output stream out.
 
Methods inherited from class java.io.OutputStream
flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

buf

protected byte[] buf
The byte array containing the bytes written.


count

protected int count
The number of bytes written.

Constructor Detail

FastByteArrayOutputStream

public FastByteArrayOutputStream()
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.


FastByteArrayOutputStream

public FastByteArrayOutputStream(int size)
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:
java.lang.IllegalArgumentException - if size < 0.
Method Detail

close

public void close()
           throws java.io.IOException
Closes this stream. This releases system resources used for this stream.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException - if an error occurs while attempting to close this stream.

reset

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


size

public int size()
Returns the total number of bytes written to this stream so far.

Returns:
the number of bytes written to this stream.

toByteArray

public byte[] toByteArray()
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.

toString

public java.lang.String toString()
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.

Overrides:
toString in class java.lang.Object
Returns:
this stream's current contents as a string.

toString

@Deprecated
public java.lang.String toString(int hibyte)
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.

toString

public java.lang.String toString(java.lang.String enc)
                          throws java.io.UnsupportedEncodingException
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:
java.io.UnsupportedEncodingException - if the provided encoding is not supported.

write

public void write(byte[] buffer,
                  int offset,
                  int len)
Writes count bytes from the byte array buffer starting at offset index to this stream.

Overrides:
write in class java.io.OutputStream
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:
java.lang.NullPointerException - if buffer is null.
java.lang.IndexOutOfBoundsException - if offset < 0 or len < 0, or if offset + len is greater than the length of buffer.

write

public void write(int oneByte)
Writes the specified byte oneByte to the OutputStream. Only the low order byte of oneByte is written.

Specified by:
write in class java.io.OutputStream
Parameters:
oneByte - the byte to be written.

writeTo

public void writeTo(java.io.OutputStream out)
             throws java.io.IOException
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:
java.io.IOException - if an error occurs while writing to out.


Copyright © 2012 The Apache Software Foundation