public class IOUtils
extends java.lang.Object
| Constructor and Description |
|---|
IOUtils() |
| Modifier and Type | Method and Description |
|---|---|
static byte[] |
readAllBytes(java.io.InputStream is)
Reads all remaining bytes from the input stream.
|
static byte[] |
readExactlyNBytes(java.io.InputStream is,
int length)
Read exactly
length of bytes from in. |
static byte[] |
readFully(java.io.InputStream is,
int length,
boolean readAll)
Compatibility wrapper for third party users of
sun.misc.IOUtils.readFully following its
removal in JDK-8231139. |
static int |
readNBytes(java.io.InputStream is,
byte[] b,
int off,
int len)
Reads the requested number of bytes from the input stream into the given
byte array.
|
static byte[] |
readNBytes(java.io.InputStream is,
int len)
Reads up to a specified number of bytes from the input stream.
|
public static byte[] readExactlyNBytes(java.io.InputStream is,
int length)
throws java.io.IOException
length of bytes from in.
Note that this method is safe to be called with unknown large
length argument. The memory used is proportional to the
actual bytes available. An exception is thrown if there are not
enough bytes in the stream.
is - input stream, must not be nulllength - number of bytes to readjava.io.EOFException - if there are not enough bytes in the streamjava.io.IOException - if an I/O error occurs or length is negativejava.lang.OutOfMemoryError - if an array of the required size cannot be
allocated.public static byte[] readAllBytes(java.io.InputStream is)
throws java.io.IOException
When this stream reaches end of stream, further invocations of this method will return an empty byte array.
Note that this method is intended for simple cases where it is convenient to read all bytes into a byte array. It is not intended for reading input streams with large amounts of data.
The behavior for the case where the input stream is asynchronously closed, or the thread interrupted during the read, is highly input stream specific, and therefore not specified.
If an I/O error occurs reading from the input stream, then it may do so after some, but not all, bytes have been read. Consequently the input stream may not be at end of stream and may be in an inconsistent state. It is strongly recommended that the stream be promptly closed if an I/O error occurs.
is - input stream, must not be nulljava.io.IOException - if an I/O error occursjava.lang.OutOfMemoryError - if an array of the required size cannot be
allocated.public static byte[] readNBytes(java.io.InputStream is,
int len)
throws java.io.IOException
The length of the returned array equals the number of bytes read
from the stream. If len is zero, then no bytes are read and
an empty byte array is returned. Otherwise, up to len bytes
are read from the stream. Fewer than len bytes may be read if
end of stream is encountered.
When this stream reaches end of stream, further invocations of this method will return an empty byte array.
Note that this method is intended for simple cases where it is
convenient to read the specified number of bytes into a byte array. The
total amount of memory allocated by this method is proportional to the
number of bytes read from the stream which is bounded by len.
Therefore, the method may be safely called with very large values of
len provided sufficient memory is available.
The behavior for the case where the input stream is asynchronously closed, or the thread interrupted during the read, is highly input stream specific, and therefore not specified.
If an I/O error occurs reading from the input stream, then it may do so after some, but not all, bytes have been read. Consequently the input stream may not be at end of stream and may be in an inconsistent state. It is strongly recommended that the stream be promptly closed if an I/O error occurs.
is - input stream, must not be nulllen - the maximum number of bytes to readjava.lang.IllegalArgumentException - if length is negativejava.io.IOException - if an I/O error occursjava.lang.OutOfMemoryError - if an array of the required size cannot be
allocated.public static int readNBytes(java.io.InputStream is,
byte[] b,
int off,
int len)
throws java.io.IOException
len bytes of input data have
been read, end of stream is detected, or an exception is thrown. The
number of bytes actually read, possibly zero, is returned. This method
does not close the input stream.
In the case where end of stream is reached before len bytes
have been read, then the actual number of bytes read will be returned.
When this stream reaches end of stream, further invocations of this
method will return zero.
If len is zero, then no bytes are read and 0 is
returned; otherwise, there is an attempt to read up to len bytes.
The first byte read is stored into element b[off], the next
one in to b[off+1], and so on. The number of bytes read is, at
most, equal to len. Let k be the number of bytes actually
read; these bytes will be stored in elements b[off] through
b[off+k-1], leaving elements b[off+k
] through b[off+len-1] unaffected.
The behavior for the case where the input stream is asynchronously closed, or the thread interrupted during the read, is highly input stream specific, and therefore not specified.
If an I/O error occurs reading from the input stream, then it may do
so after some, but not all, bytes of b have been updated with
data from the input stream. Consequently the input stream and b
may be in an inconsistent state. It is strongly recommended that the
stream be promptly closed if an I/O error occurs.
is - input stream, must not be nullb - the byte array into which the data is readoff - the start offset in b at which the data is writtenlen - the maximum number of bytes to readjava.io.IOException - if an I/O error occursjava.lang.NullPointerException - if b is nulljava.lang.IndexOutOfBoundsException - If off is negative, len
is negative, or len is greater than b.length - offpublic static byte[] readFully(java.io.InputStream is,
int length,
boolean readAll)
throws java.io.IOException
sun.misc.IOUtils.readFully following its
removal in JDK-8231139.
Read up to length of bytes from in
until EOF is detected.is - input stream, must not be nulllength - number of bytes to readreadAll - if true, an EOFException will be thrown if not enough
bytes are read.java.io.EOFException - if there are not enough bytes in the streamjava.io.IOException - if an I/O error occurs or length is negativejava.lang.OutOfMemoryError - if an array of the required size cannot be
allocated.