Class ByteArrayOutputStream

    • Constructor Summary

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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void reset()  
      int size()
      Returns the current size of the byte array.
      static java.io.InputStream toBufferedInputStream​(java.io.InputStream input)
      Fetches entire contents of an InputStream and represent same data as result InputStream.
      static java.io.InputStream toBufferedInputStream​(java.io.InputStream input, int size)
      Fetches entire contents of an InputStream and represent same data as result InputStream.
      byte[] toByteArray()
      Gets the current contents of this byte stream as a byte array.
      java.io.InputStream toInputStream()
      Gets the current contents of this byte stream as a Input Stream.
      void write​(byte[] b, int off, int len)
      Writes the bytes to the byte array.
      void write​(int b)
      Write a byte to byte array.
      int write​(java.io.InputStream in)
      Writes the entire contents of the specified input stream to this byte stream.
      void writeTo​(java.io.OutputStream out)
      Writes the entire contents of this byte stream to the specified output stream.
      • Methods inherited from class java.io.OutputStream

        flush, nullOutputStream, write
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ByteArrayOutputStream

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

        public ByteArrayOutputStream​(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
    • Method Detail

      • write

        public int write​(java.io.InputStream in)
                  throws java.io.IOException
        Description copied from class: AbstractByteArrayOutputStream
        Writes the entire contents of the specified input stream to this byte stream. Bytes from the input stream are read directly into the internal buffers of this streams.
        Specified by:
        write in class AbstractByteArrayOutputStream
        Parameters:
        in - the input stream to read from
        Returns:
        total number of bytes read from the input stream (and written to this stream)
        Throws:
        java.io.IOException - if an I/O error occurs while reading the input stream
      • writeTo

        public void writeTo​(java.io.OutputStream out)
                     throws java.io.IOException
        Description copied from class: AbstractByteArrayOutputStream
        Writes the entire contents of this byte stream to the specified output stream.
        Specified by:
        writeTo in class AbstractByteArrayOutputStream
        Parameters:
        out - the output stream to write to
        Throws:
        java.io.IOException - if an I/O error occurs, such as if the stream is closed
        See Also:
        ByteArrayOutputStream.writeTo(OutputStream)
      • toBufferedInputStream

        public static java.io.InputStream toBufferedInputStream​(java.io.InputStream input)
                                                         throws java.io.IOException
        Fetches entire contents of an InputStream and represent same data as result InputStream.

        This method is useful where,

        • Source InputStream is slow.
        • It has network resources associated, so we cannot keep it open for long time.
        • It has network timeout associated.
        It can be used in favor of toByteArray(), since it avoids unnecessary allocation and copy of byte[].
        This method buffers the input internally, so there is no need to use a BufferedInputStream.
        Parameters:
        input - Stream to be fully buffered.
        Returns:
        A fully buffered stream.
        Throws:
        java.io.IOException - if an I/O error occurs.
        Since:
        2.0
      • toBufferedInputStream

        public static java.io.InputStream toBufferedInputStream​(java.io.InputStream input,
                                                                int size)
                                                         throws java.io.IOException
        Fetches entire contents of an InputStream and represent same data as result InputStream.

        This method is useful where,

        • Source InputStream is slow.
        • It has network resources associated, so we cannot keep it open for long time.
        • It has network timeout associated.
        It can be used in favor of toByteArray(), since it avoids unnecessary allocation and copy of byte[].
        This method buffers the input internally, so there is no need to use a BufferedInputStream.
        Parameters:
        input - Stream to be fully buffered.
        size - the initial buffer size
        Returns:
        A fully buffered stream.
        Throws:
        java.io.IOException - if an I/O error occurs.
        Since:
        2.5
      • toByteArray

        public byte[] toByteArray()
        Description copied from class: AbstractByteArrayOutputStream
        Gets the current contents of this byte stream as a byte array. The result is independent of this stream.
        Specified by:
        toByteArray in class AbstractByteArrayOutputStream
        Returns:
        the current contents of this output stream, as a byte array
        See Also:
        ByteArrayOutputStream.toByteArray()