Class UnsynchronizedByteArrayOutputStream

    • Constructor Detail

      • UnsynchronizedByteArrayOutputStream

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

        public UnsynchronizedByteArrayOutputStream​(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.
      • 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.
      • 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()