Class ByteOutputBuffer


  • public class ByteOutputBuffer
    extends Object
    This class provides a buffering output stream similar to ByteArrayOutputStream, with some additional methods.

    Once an array has been written to an output stream or to a byte array, the object can be reused as a new stream if the reset() method is called.

    Unlike the ByteArrayOutputStream class, this class is not thread safe.

    See Also:
    reset()
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int BUF_DEF_LEN
      The default initial buffer size
      static int BUF_INC
      The buffer increase size
    • Constructor Summary

      Constructors 
      Constructor Description
      ByteOutputBuffer()
      Creates a new byte array output stream.
      ByteOutputBuffer​(int size)
      Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getByte​(int pos)
      Returns the byte buffered at the given position in the buffer.
      void reset()
      Discards all the buffered data, by resetting the counter of written bytes to 0.
      int size()
      Returns the number of valid bytes in the output buffer (count class variable).
      void toByteArray​(int off, int len, byte[] outbuf, int outoff)
      Copies the specified part of the stream to the 'outbuf' byte array.
      void write​(int b)
      Writes the specified byte to this byte array output stream.
    • Field Detail

      • BUF_DEF_LEN

        public static final int BUF_DEF_LEN
        The default initial buffer size
        See Also:
        Constant Field Values
    • Constructor Detail

      • ByteOutputBuffer

        public ByteOutputBuffer()
        Creates a new byte array output stream. The buffer capacity is initially BUF_DEF_LEN bytes, though its size increases if necessary.
      • ByteOutputBuffer

        public ByteOutputBuffer​(int size)
        Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
        Parameters:
        size - the initial size.
    • Method Detail

      • write

        public final void write​(int b)
        Writes the specified byte to this byte array output stream. The functionality provided by this implementation is the same as for the one in the superclass, however this method is not synchronized and therefore not safe thread, but faster.
        Parameters:
        b - The byte to write
      • toByteArray

        public void toByteArray​(int off,
                                int len,
                                byte[] outbuf,
                                int outoff)
        Copies the specified part of the stream to the 'outbuf' byte array.
        Parameters:
        off - The index of the first element in the stream to copy.
        len - The number of elements of the array to copy
        outbuf - The destination array
        outoff - The index of the first element in 'outbuf' where to write the data.
      • size

        public int size()
        Returns the number of valid bytes in the output buffer (count class variable).
        Returns:
        The number of bytes written to the buffer
      • reset

        public void reset()
        Discards all the buffered data, by resetting the counter of written bytes to 0.
      • getByte

        public int getByte​(int pos)
        Returns the byte buffered at the given position in the buffer. The position in the buffer is the index of the 'write()' method call after the last call to 'reset()'.
        Parameters:
        pos - The position of the byte to return
        Returns:
        The value (betweeb 0-255) of the byte at position 'pos'.