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
- Author:
- Yaniv Inbar
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static long
copy(InputStream from, OutputStream to)
Copies all bytes from the input stream to the output stream.static InputStream
limit(InputStream in, long limit)
Wraps an input stream, limiting the number of bytes which can be read.static int
read(InputStream in, byte[] b, int off, int len)
Reads some bytes from an input stream and stores them into the buffer arrayb
.
-
-
-
Method Detail
-
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 fromto
- 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 wrappedlimit
- 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 arrayb
.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, aNullPointerException
is thrown. Ifoff
is negative, orlen
is negative, oroff+len
is greater than the length of the arrayb
, then anIndexOutOfBoundsException
is thrown. Iflen
is zero, then no bytes are read. Otherwise, the first byte read is stored into elementb[off]
, the next one intob[off+1]
, and so on. The number of bytes read is, at most, equal tolen
.- Parameters:
in
- the input stream to read fromb
- the buffer into which the data is readoff
- an int specifying the offset into the datalen
- an int specifying the number of bytes to read- Returns:
- the number of bytes read
- Throws:
IOException
-
-