Class UnsynchronizedByteArrayOutputStream

java.lang.Object
com.google.cloud.spanner.spi.v1.UnsynchronizedByteArrayOutputStream

@InternalApi public final class UnsynchronizedByteArrayOutputStream extends Object
A simple, unsynchronized byte array output stream optimized for key encoding.

Unlike ByteArrayOutputStream, this class is not thread-safe and does not incur synchronization overhead. This provides better performance for single-threaded key encoding operations where synchronization is not required.

  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new output stream with a default initial capacity of 32 bytes.
    Creates a new output stream with the specified initial capacity.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Resets the buffer so that it can be reused.
    int
    Returns the current number of bytes written to this stream.
    byte[]
    Returns a copy of the buffer contents as a new byte array.
    void
    write(byte[] b, int off, int len)
    Writes a portion of a byte array to this output stream.
    void
    write(int b)
    Writes the specified byte to this output stream.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • UnsynchronizedByteArrayOutputStream

      public UnsynchronizedByteArrayOutputStream()
      Creates a new output stream with a default initial capacity of 32 bytes.
    • UnsynchronizedByteArrayOutputStream

      public UnsynchronizedByteArrayOutputStream(int initialCapacity)
      Creates a new output stream with the specified initial capacity.
      Parameters:
      initialCapacity - the initial buffer size
      Throws:
      IllegalArgumentException - if initialCapacity is negative
  • Method Details

    • write

      public void write(int b)
      Writes the specified byte to this output stream.
      Parameters:
      b - the byte to write (only the low 8 bits are used)
    • write

      public void write(byte[] b, int off, int len)
      Writes a portion of a byte array to this output stream.
      Parameters:
      b - the source byte array
      off - the start offset in the array
      len - the number of bytes to write
    • toByteArray

      public byte[] toByteArray()
      Returns a copy of the buffer contents as a new byte array.
      Returns:
      a new byte array containing the written bytes
    • reset

      public void reset()
      Resets the buffer so that it can be reused. The underlying buffer is retained.
    • size

      public int size()
      Returns the current number of bytes written to this stream.
      Returns:
      the number of valid bytes in the buffer