|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.google.common.io.ByteStreams
@Beta public final class ByteStreams
Provides utility methods for working with byte arrays and I/O streams.
All method parameters must be non-null unless documented otherwise.
Method Summary | ||
---|---|---|
static long |
copy(java.io.InputStream from,
java.io.OutputStream to)
Copies all bytes from the input stream to the output stream. |
|
static long |
copy(InputSupplier<? extends java.io.InputStream> from,
java.io.OutputStream to)
Opens an input stream from the supplier, copies all bytes from the input to the output, and closes the input stream. |
|
static long |
copy(InputSupplier<? extends java.io.InputStream> from,
OutputSupplier<? extends java.io.OutputStream> to)
Opens input and output streams from the given suppliers, copies all bytes from the input to the output, and closes the streams. |
|
static long |
copy(java.nio.channels.ReadableByteChannel from,
java.nio.channels.WritableByteChannel to)
Copies all bytes from the readable channel to the writable channel. |
|
static boolean |
equal(InputSupplier<? extends java.io.InputStream> supplier1,
InputSupplier<? extends java.io.InputStream> supplier2)
Returns true if the supplied input streams contain the same bytes. |
|
static long |
getChecksum(InputSupplier<? extends java.io.InputStream> supplier,
java.util.zip.Checksum checksum)
Computes and returns the checksum value for a supplied input stream. |
|
static byte[] |
getDigest(InputSupplier<? extends java.io.InputStream> supplier,
java.security.MessageDigest md)
Computes and returns the digest value for a supplied input stream. |
|
static InputSupplier<java.io.InputStream> |
join(InputSupplier<? extends java.io.InputStream>... suppliers)
Varargs form of join(Iterable) . |
|
static InputSupplier<java.io.InputStream> |
join(java.lang.Iterable<? extends InputSupplier<? extends java.io.InputStream>> suppliers)
Joins multiple InputStream suppliers into a single supplier. |
|
static long |
length(InputSupplier<? extends java.io.InputStream> supplier)
Returns the length of a supplied input stream, in bytes. |
|
static ByteArrayDataInput |
newDataInput(byte[] bytes)
Returns a new ByteArrayDataInput instance to read from the bytes array from the beginning. |
|
static ByteArrayDataInput |
newDataInput(byte[] bytes,
int start)
Returns a new ByteArrayDataInput instance to read from the bytes array, starting at the given position. |
|
static ByteArrayDataOutput |
newDataOutput()
Returns a new ByteArrayDataOutput instance with a default size. |
|
static ByteArrayDataOutput |
newDataOutput(int size)
Returns a new ByteArrayDataOutput instance sized to hold
size bytes before resizing. |
|
static InputSupplier<java.io.ByteArrayInputStream> |
newInputStreamSupplier(byte[] b)
Returns a factory that will supply instances of ByteArrayInputStream that read from the given byte array. |
|
static InputSupplier<java.io.ByteArrayInputStream> |
newInputStreamSupplier(byte[] b,
int off,
int len)
Returns a factory that will supply instances of ByteArrayInputStream that read from the given byte array. |
|
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 . |
|
static
|
readBytes(InputSupplier<? extends java.io.InputStream> supplier,
ByteProcessor<T> processor)
Process the bytes of a supplied stream |
|
static void |
readFully(java.io.InputStream in,
byte[] b)
Attempts to read enough bytes from the stream to fill the given byte array, with the same behavior as DataInput.readFully(byte[]) . |
|
static void |
readFully(java.io.InputStream in,
byte[] b,
int off,
int len)
Attempts to read len bytes from the stream into the given array
starting at off , with the same behavior as
DataInput.readFully(byte[], int, int) . |
|
static void |
skipFully(java.io.InputStream in,
long n)
Discards n bytes of data from the input stream. |
|
static InputSupplier<java.io.InputStream> |
slice(InputSupplier<? extends java.io.InputStream> supplier,
long offset,
long length)
Returns an InputSupplier that returns input streams from the
an underlying supplier, where each stream starts at the given
offset and is limited to the specified number of bytes. |
|
static byte[] |
toByteArray(java.io.InputStream in)
Reads all bytes from an input stream into a byte array. |
|
static byte[] |
toByteArray(InputSupplier<? extends java.io.InputStream> supplier)
Returns the data from a InputStream factory as a byte array. |
|
static void |
write(byte[] from,
OutputSupplier<? extends java.io.OutputStream> to)
Writes a byte array to an output stream from the given supplier. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static InputSupplier<java.io.ByteArrayInputStream> newInputStreamSupplier(byte[] b)
ByteArrayInputStream
that read from the given byte array.
b
- the input buffer
public static InputSupplier<java.io.ByteArrayInputStream> newInputStreamSupplier(byte[] b, int off, int len)
ByteArrayInputStream
that read from the given byte array.
b
- the input bufferoff
- the offset in the buffer of the first byte to readlen
- the maximum number of bytes to read from the buffer
public static void write(byte[] from, OutputSupplier<? extends java.io.OutputStream> to) throws java.io.IOException
from
- the bytes to writeto
- the output supplier
java.io.IOException
- if an I/O error occurspublic static long copy(InputSupplier<? extends java.io.InputStream> from, OutputSupplier<? extends java.io.OutputStream> to) throws java.io.IOException
from
- the input factoryto
- the output factory
java.io.IOException
- if an I/O error occurspublic static long copy(InputSupplier<? extends java.io.InputStream> from, java.io.OutputStream to) throws java.io.IOException
from
- the input factoryto
- the output stream to write to
java.io.IOException
- if an I/O error occurspublic static long copy(java.io.InputStream from, java.io.OutputStream to) throws java.io.IOException
from
- the input stream to read fromto
- the output stream to write to
java.io.IOException
- if an I/O error occurspublic static long copy(java.nio.channels.ReadableByteChannel from, java.nio.channels.WritableByteChannel to) throws java.io.IOException
from
- the readable channel to read fromto
- the writable channel to write to
java.io.IOException
- if an I/O error occurspublic static byte[] toByteArray(java.io.InputStream in) throws java.io.IOException
in
- the input stream to read from
java.io.IOException
- if an I/O error occurspublic static byte[] toByteArray(InputSupplier<? extends java.io.InputStream> supplier) throws java.io.IOException
InputStream
factory as a byte array.
supplier
- the factory
java.io.IOException
- if an I/O error occurspublic static ByteArrayDataInput newDataInput(byte[] bytes)
ByteArrayDataInput
instance to read from the bytes
array from the beginning.
public static ByteArrayDataInput newDataInput(byte[] bytes, int start)
ByteArrayDataInput
instance to read from the bytes
array, starting at the given position.
java.lang.IndexOutOfBoundsException
- if start
is negative or greater
than the length of the arraypublic static ByteArrayDataOutput newDataOutput()
ByteArrayDataOutput
instance with a default size.
public static ByteArrayDataOutput newDataOutput(int size)
ByteArrayDataOutput
instance sized to hold
size
bytes before resizing.
java.lang.IllegalArgumentException
- if size
is negativepublic static long length(InputSupplier<? extends java.io.InputStream> supplier) throws java.io.IOException
java.io.IOException
public static boolean equal(InputSupplier<? extends java.io.InputStream> supplier1, InputSupplier<? extends java.io.InputStream> supplier2) throws java.io.IOException
java.io.IOException
- if an I/O error occurspublic static void readFully(java.io.InputStream in, byte[] b) throws java.io.IOException
DataInput.readFully(byte[])
.
Does not close the stream.
in
- the input stream to read from.b
- the buffer into which the data is read.
java.io.EOFException
- if this stream reaches the end before reading all
the bytes.
java.io.IOException
- if an I/O error occurs.public static void readFully(java.io.InputStream in, byte[] b, int off, int len) throws java.io.IOException
len
bytes from the stream into the given array
starting at off
, with the same behavior as
DataInput.readFully(byte[], int, int)
. Does not close the
stream.
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.
java.io.EOFException
- if this stream reaches the end before reading all
the bytes.
java.io.IOException
- if an I/O error occurs.public static void skipFully(java.io.InputStream in, long n) throws java.io.IOException
n
bytes of data from the input stream. This method
will block until the full amount has been skipped. Does not close the
stream.
in
- the input stream to read fromn
- the number of bytes to skip
java.io.EOFException
- if this stream reaches the end before skipping all
the bytes
java.io.IOException
- if an I/O error occurs, or the stream does not
support skippingpublic static <T> T readBytes(InputSupplier<? extends java.io.InputStream> supplier, ByteProcessor<T> processor) throws java.io.IOException
supplier
- the input stream factoryprocessor
- the object to which to pass the bytes of the stream
java.io.IOException
- if an I/O error occurspublic static long getChecksum(InputSupplier<? extends java.io.InputStream> supplier, java.util.zip.Checksum checksum) throws java.io.IOException
supplier
- the input stream factorychecksum
- the checksum object
Checksum.getValue()
after updating the
checksum object with all of the bytes in the stream
java.io.IOException
- if an I/O error occurspublic static byte[] getDigest(InputSupplier<? extends java.io.InputStream> supplier, java.security.MessageDigest md) throws java.io.IOException
supplier
- the input stream factorymd
- the digest object
MessageDigest.digest()
after updating the
digest object with all of the bytes in the stream
java.io.IOException
- if an I/O error occurspublic static int read(java.io.InputStream in, byte[] b, int off, int len) throws java.io.IOException
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
.
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
java.io.IOException
- if an I/O error occurspublic static InputSupplier<java.io.InputStream> slice(InputSupplier<? extends java.io.InputStream> supplier, long offset, long length)
InputSupplier
that returns input streams from the
an underlying supplier, where each stream starts at the given
offset and is limited to the specified number of bytes.
supplier
- the supplier from which to get the raw streamsoffset
- the offset in bytes into the underlying stream where
the returned streams will startlength
- the maximum length of the returned streams
java.lang.IllegalArgumentException
- if offset or length are negativepublic static InputSupplier<java.io.InputStream> join(java.lang.Iterable<? extends InputSupplier<? extends java.io.InputStream>> suppliers)
InputStream
suppliers into a single supplier.
Streams returned from the supplier will contain the concatenated data from
the streams of the underlying suppliers.
Only one underlying input stream will be open at a time. Closing the joined stream will close the open underlying stream.
Reading from the joined stream will throw a NullPointerException
if any of the suppliers are null or return null.
suppliers
- the suppliers to concatenate
public static InputSupplier<java.io.InputStream> join(InputSupplier<? extends java.io.InputStream>... suppliers)
join(Iterable)
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |