public class UnsafeByteArrayInputStream extends InputStream
ByteArrayInputStream uses a given buffer as a
source of an InputStream. Unlike ByteArrayInputStream, this class does not
"waste" memory by creating a local copy of the given buffer, but rather uses
the given buffer as is. Hence the name Unsafe. While using this class one
should remember that the byte[] buffer memory is shared and might be changed
from outside.
For reuse-ability, a call for reInit(byte[]) can be called, and
initialize the stream with a new buffer.| Constructor and Description |
|---|
UnsafeByteArrayInputStream()
Creates a new instance by not using any byte[] up front.
|
UnsafeByteArrayInputStream(byte[] buffer)
Creates an UnsafeByteArrayInputStream which uses a given byte array as
the source of the stream.
|
UnsafeByteArrayInputStream(byte[] buffer,
int startPos,
int endPos)
Creates an UnsafeByteArrayInputStream which uses a given byte array as
the source of the stream, at the specific range: [startPos, endPos)
|
| Modifier and Type | Method and Description |
|---|---|
int |
available() |
void |
mark(int readlimit) |
boolean |
markSupported() |
int |
read()
Read a byte.
|
void |
reInit(byte[] buffer)
Initialize the stream with a given buffer, using the default limits of
[0, buffer.length)
|
void |
reInit(byte[] buffer,
int startPos,
int endPos)
Initialize the stream with a given byte array as the source of the
stream, at the specific range: [startPos, endPos)
|
void |
reset()
Resets the stream back to its original state.
|
close, read, read, skippublic UnsafeByteArrayInputStream()
reInit
methods before you consume any byte from this instance.new byte[0] or something. Obviously in that case, one will
call either reInit methods before using the class.public UnsafeByteArrayInputStream(byte[] buffer)
buffer - byte array used as the source of this streampublic UnsafeByteArrayInputStream(byte[] buffer,
int startPos,
int endPos)
buffer - byte array used as the source of this streamstartPos - first index (inclusive) to the data lying in the given bufferendPos - an index (exclusive) where the data ends. data @
buffer[endPos] will never be readpublic void mark(int readlimit)
mark in class InputStreampublic boolean markSupported()
markSupported in class InputStreampublic void reInit(byte[] buffer)
buffer - byte array used as the source of this streampublic void reInit(byte[] buffer,
int startPos,
int endPos)
buffer - byte array used as the source of this streamstartPos - first index (inclusive) to the data lying in the given bufferendPos - an index (exclusive) where the data ends. data @
buffer[endPos] will never be readpublic int available()
throws IOException
available in class InputStreamIOExceptionpublic int read()
throws IOException
read in class InputStreamIOExceptionpublic void reset()
throws IOException
reset in class InputStreamIOExceptionCopyright © 2000-2013 Apache Software Foundation. All Rights Reserved.