public final class Streams
extends java.lang.Object
| Constructor and Description |
|---|
Streams() |
| Modifier and Type | Method and Description |
|---|---|
static void |
drain(java.io.InputStream inStr)
Read stream till EOF is encountered.
|
static void |
pipeAll(java.io.InputStream inStr,
java.io.OutputStream outStr)
Write the full contents of inStr to the destination stream outStr.
|
static void |
pipeAll(java.io.InputStream inStr,
java.io.OutputStream outStr,
int bufferSize)
Write the full contents of inStr to the destination stream outStr.
|
static long |
pipeAllLimited(java.io.InputStream inStr,
long limit,
java.io.OutputStream outStr)
Write up to limit bytes of data from inStr to the destination stream outStr.
|
static byte[] |
readAll(java.io.InputStream inStr)
Read stream fully, returning contents in a byte array.
|
static byte[] |
readAllLimited(java.io.InputStream inStr,
int limit)
Read from inStr up to a maximum number of bytes, throwing an exception if more the maximum amount
of requested data is available.
|
static int |
readFully(java.io.InputStream inStr,
byte[] buf)
Fully read in buf's length in data, or up to EOF, whichever occurs first,
|
static int |
readFully(java.io.InputStream inStr,
byte[] buf,
int off,
int len)
Fully read in len's bytes of data into buf, or up to EOF, whichever occurs first,
|
static byte[] |
readLenBytesFully(java.io.InputStream inStr,
int len)
Read exactly
len bytes from inStr and return them as a newly allocated array. |
static void |
validateBufferArguments(byte[] buf,
int off,
int len) |
static void |
writeBufTo(java.io.ByteArrayOutputStream buf,
java.io.OutputStream output) |
public static void drain(java.io.InputStream inStr)
throws java.io.IOException
inStr - stream to be emptied.java.io.IOException - in case of underlying IOException.public static void pipeAll(java.io.InputStream inStr,
java.io.OutputStream outStr)
throws java.io.IOException
inStr - source input stream.outStr - destination output stream.java.io.IOException - in case of underlying IOException.public static void pipeAll(java.io.InputStream inStr,
java.io.OutputStream outStr,
int bufferSize)
throws java.io.IOException
inStr - source input stream.outStr - destination output stream.bufferSize - the size of temporary buffer to use.java.io.IOException - in case of underlying IOException.public static long pipeAllLimited(java.io.InputStream inStr,
long limit,
java.io.OutputStream outStr)
throws java.io.IOException
inStr - source input stream.limit - the maximum number of bytes allowed to be read.outStr - destination output stream.java.io.IOException - in case of underlying IOException, or if limit is reached on inStr still has data in it.public static byte[] readAll(java.io.InputStream inStr)
throws java.io.IOException
inStr - stream to be read.java.io.IOException - in case of underlying IOException.public static byte[] readAllLimited(java.io.InputStream inStr,
int limit)
throws java.io.IOException
inStr - stream to be read.limit - maximum number of bytes that can be read.java.io.IOException - in case of underlying IOException, or if limit is reached on inStr still has data in it.public static int readFully(java.io.InputStream inStr,
byte[] buf)
throws java.io.IOException
inStr - the stream to be read.buf - the buffer to be read into.java.io.IOException - in case of underlying IOException.public static int readFully(java.io.InputStream inStr,
byte[] buf,
int off,
int len)
throws java.io.IOException
inStr - the stream to be read.buf - the buffer to be read into.off - offset into buf to start putting bytes into.len - the number of bytes to be read.java.io.IOException - in case of underlying IOException.public static byte[] readLenBytesFully(java.io.InputStream inStr,
int len)
throws java.io.IOException
len bytes from inStr and return them as a newly allocated array.
Unlike new byte[len] followed by readFully(InputStream, byte[]), the returned
array is grown incrementally as data arrives rather than allocated at the full declared length
up front. A caller passing an untrusted (possibly hostile) length therefore cannot drive a large
allocation from a short input - the allocation tracks the bytes the stream actually delivers, and
a stream that ends before len bytes have been read fails with an EOFException.
inStr - the stream to read from.len - the exact number of bytes to read.byte[len] containing the bytes read.java.io.EOFException - if the stream ends before len bytes are available.java.io.IOException - on an underlying read error.java.lang.IllegalArgumentException - if len is negative.public static void validateBufferArguments(byte[] buf,
int off,
int len)
public static void writeBufTo(java.io.ByteArrayOutputStream buf,
java.io.OutputStream output)
throws java.io.IOException
java.io.IOException