Class ByteStreams
- java.lang.Object
-
- com.google.api.client.util.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ByteStreams.LimitedInputStream
-
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 arrayb
.
-
-
-
Field Detail
-
BUF_SIZE
private static final int BUF_SIZE
- See Also:
- Constant Field Values
-
-
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 fromto
- 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 wrappedlimit
- 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 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:
java.io.IOException
-
-