Class ByteStreams

java.lang.Object
com.google.api.client.util.ByteStreams

public final class ByteStreams extends 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 Details

  • Constructor Details

    • ByteStreams

      private ByteStreams()
  • Method Details

    • copy

      public static long copy(InputStream from, OutputStream to) throws 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:
      IOException
    • limit

      public static InputStream limit(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(InputStream in, byte[] b, int off, int len) throws 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:
      IOException