Class DataByteArrayOutputStream

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

    public class DataByteArrayOutputStream
    extends java.io.OutputStream
    implements java.io.DataOutput
    Optimized ByteArrayOutputStream
    • Constructor Detail

      • DataByteArrayOutputStream

        public DataByteArrayOutputStream​(int size)
        Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
        Parameters:
        size - the initial size.
        Throws:
        java.lang.IllegalArgumentException - if size is negative.
      • DataByteArrayOutputStream

        public DataByteArrayOutputStream​(byte[] buf)
      • DataByteArrayOutputStream

        public DataByteArrayOutputStream()
        Creates a new byte array output stream.
    • Method Detail

      • restart

        public void restart​(int size)
        start using a fresh byte array
        Parameters:
        size -
      • restart

        public void restart()
        start using a fresh byte array
      • toBuffer

        public Buffer toBuffer()
        Get a Buffer from the stream
        Returns:
        the byte sequence
      • write

        public void write​(int b)
                   throws java.io.IOException
        Writes the specified byte to this byte array output stream.
        Specified by:
        write in interface java.io.DataOutput
        Specified by:
        write in class java.io.OutputStream
        Parameters:
        b - the byte to be written.
        Throws:
        java.io.IOException
      • write

        public void write​(Buffer data)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
        Specified by:
        write in interface java.io.DataOutput
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - the data.
        off - the start offset in the data.
        len - the number of bytes to write.
        Throws:
        java.io.IOException
      • getData

        public byte[] getData()
        Returns:
        the underlying byte[] buffer
      • reset

        public void reset()
        reset the output stream
      • position

        public void position​(int offset)
                      throws java.io.IOException
        Set the current position for writing
        Parameters:
        offset -
        Throws:
        java.io.IOException
      • position

        public int position()
      • size

        public int size()
      • writeBoolean

        public void writeBoolean​(boolean v)
                          throws java.io.IOException
        Specified by:
        writeBoolean in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeByte

        public void writeByte​(int v)
                       throws java.io.IOException
        Specified by:
        writeByte in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeShort

        public void writeShort​(int v)
                        throws java.io.IOException
        Specified by:
        writeShort in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeChar

        public void writeChar​(int v)
                       throws java.io.IOException
        Specified by:
        writeChar in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeInt

        public void writeInt​(int v)
                      throws java.io.IOException
        Specified by:
        writeInt in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeLong

        public void writeLong​(long v)
                       throws java.io.IOException
        Specified by:
        writeLong in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeFloat

        public void writeFloat​(float v)
                        throws java.io.IOException
        Specified by:
        writeFloat in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeDouble

        public void writeDouble​(double v)
                         throws java.io.IOException
        Specified by:
        writeDouble in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(java.lang.String s)
                        throws java.io.IOException
        Specified by:
        writeBytes in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeChars

        public void writeChars​(java.lang.String s)
                        throws java.io.IOException
        Specified by:
        writeChars in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • writeUTF

        public void writeUTF​(java.lang.String str)
                      throws java.io.IOException
        Specified by:
        writeUTF in interface java.io.DataOutput
        Throws:
        java.io.IOException
      • ensureEnoughBuffer

        private void ensureEnoughBuffer​(int newcount)
      • resize

        protected void resize​(int newcount)
      • onWrite

        protected void onWrite()
                        throws java.io.IOException
        This method is called after each write to the buffer. This should allow subclasses to take some action based on the writes, for example flushing data to an external system based on size.
        Throws:
        java.io.IOException
      • skip

        public void skip​(int size)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • writeVarInt

        public void writeVarInt​(int value)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • writeVarLong

        public void writeVarLong​(long value)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeVarSignedInt

        public void writeVarSignedInt​(int value)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeVarSignedLong

        public void writeVarSignedLong​(long value)
                                throws java.io.IOException
        Throws:
        java.io.IOException