Class ByteStreams


  • public final class ByteStreams
    extends java.lang.Object
    Provides utility methods for working with byte arrays and I/O streams.

    NOTE: this is a copy of a subset of Guava's ByteStreams. The implementation must match as closely as possible to Guava's implementation.

    Since:
    1.14
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int BUF_SIZE  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ByteStreams()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long copy​(java.io.InputStream from, java.io.OutputStream to)
      Copies all bytes from the input stream to the output stream.
      static java.io.InputStream limit​(java.io.InputStream in, long limit)
      Wraps an input stream, limiting the number of bytes which can be read.
      static int read​(java.io.InputStream in, byte[] b, int off, int len)
      Reads some bytes from an input stream and stores them into the buffer array b.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ByteStreams

        private ByteStreams()
    • Method Detail

      • copy

        public static long copy​(java.io.InputStream from,
                                java.io.OutputStream to)
                         throws java.io.IOException
        Copies all bytes from the input stream to the output stream. Does not close or flush either stream.
        Parameters:
        from - the input stream to read from
        to - the output stream to write to
        Returns:
        the number of bytes copied
        Throws:
        java.io.IOException
      • limit

        public static java.io.InputStream limit​(java.io.InputStream in,
                                                long limit)
        Wraps an input stream, limiting the number of bytes which can be read.
        Parameters:
        in - the input stream to be wrapped
        limit - the maximum number of bytes to be read
        Returns:
        a length-limited InputStream
      • read

        public static int read​(java.io.InputStream in,
                               byte[] b,
                               int off,
                               int len)
                        throws java.io.IOException
        Reads some bytes from an input stream and stores them into the buffer array b.

        This method blocks until len bytes of input data have been read into the array, or end of file is detected. The number of bytes read is returned, possibly zero. Does not close the stream.

        A caller can detect EOF if the number of bytes read is less than len. All subsequent calls on the same stream will return zero.

        If b is null, a NullPointerException is thrown. If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown. If len is zero, then no bytes are read. Otherwise, the first byte read is stored into element b[off], the next one into b[off+1], and so on. The number of bytes read is, at most, equal to len.

        Parameters:
        in - the input stream to read from
        b - the buffer into which the data is read
        off - an int specifying the offset into the data
        len - an int specifying the number of bytes to read
        Returns:
        the number of bytes read
        Throws:
        java.io.IOException