Class ByteString.Output

java.lang.Object
java.io.OutputStream
com.google.protobuf.ByteString.Output
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Enclosing class:
ByteString

public static final class ByteString.Output extends OutputStream
Outputs to a ByteString instance. Call toByteString() to create the ByteString instance.
  • Field Details

    • EMPTY_BYTE_ARRAY

      private static final byte[] EMPTY_BYTE_ARRAY
    • initialCapacity

      private final int initialCapacity
    • flushedBuffers

      private final ArrayList<ByteString> flushedBuffers
    • flushedBuffersTotalBytes

      private int flushedBuffersTotalBytes
    • buffer

      private byte[] buffer
    • bufferPos

      private int bufferPos
  • Constructor Details

    • Output

      Output(int initialCapacity)
      Creates a new ByteString output stream with the specified initial capacity.
      Parameters:
      initialCapacity - the initial capacity of the output stream.
  • Method Details

    • write

      public void write(int b)
      Specified by:
      write in class OutputStream
    • write

      public void write(byte[] b, int offset, int length)
      Overrides:
      write in class OutputStream
    • toByteString

      public ByteString toByteString()
      Creates a byte string with the size and contents of this output stream. This does not create a new copy of the underlying bytes. If the stream size grows dynamically, the runtime is O(log n) in respect to the number of bytes written to the ByteString.Output. If the stream size stays within the initial capacity, the runtime is O(1).
      Returns:
      the current contents of this output stream, as a byte string.
    • copyArray

      private byte[] copyArray(byte[] buffer, int length)
      Implement java.util.Arrays.copyOf() for jdk 1.5.
    • writeTo

      public void writeTo(OutputStream out) throws IOException
      Writes the complete contents of this byte array output stream to the specified output stream argument.
      Parameters:
      out - the output stream to which to write the data.
      Throws:
      IOException - if an I/O error occurs.
    • size

      public int size()
      Returns the current size of the output stream.
      Returns:
      the current size of the output stream
    • reset

      public void reset()
      Resets this stream, so that all currently accumulated output in the output stream is discarded. The output stream can be used again, reusing the already allocated buffer space.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • flushFullBuffer

      private void flushFullBuffer(int minSize)
      Internal function used by writers. The current buffer is full, and the writer needs a new buffer whose size is at least the specified minimum size.
    • flushLastBuffer

      private void flushLastBuffer()
      Internal function used by toByteString(). The current buffer may or may not be full, but it needs to be flushed.