org.apache.cassandra.io.util

## Class FastByteArrayOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - org.apache.cassandra.io.util.FastByteArrayOutputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

      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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `buf` The byte array containing the bytes written.
    `protected int` | `count` The number of bytes written.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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(java.nio.ByteBuffer buffer)`
    `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`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      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(java.nio.ByteBuffer 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 © 2014 The Apache Software Foundation