@NotThreadSafe
public class RandomAccessData
extends java.lang.Object
InputStream
to this wrapper to be used as an OutputStream and vice versa. This wrapper
also provides random access to bytes stored within. This wrapper allows users to finely
control the number of byte copies that occur.
Anything stored within the in-memory buffer from offset size() is considered
temporary unused storage.
| Modifier and Type | Class and Description |
|---|---|
static class |
RandomAccessData.RandomAccessDataCoder
A
Coder which encodes the valid parts of this stream. |
static class |
RandomAccessData.UnsignedLexicographicalComparator
A
Comparator that compares two byte arrays lexicographically. |
| Modifier and Type | Field and Description |
|---|---|
static RandomAccessData.UnsignedLexicographicalComparator |
UNSIGNED_LEXICOGRAPHICAL_COMPARATOR |
| Constructor and Description |
|---|
RandomAccessData()
Constructs a RandomAccessData with a default buffer size.
|
RandomAccessData(byte[] initialBuffer)
Constructs a RandomAccessData with the initial buffer.
|
RandomAccessData(int initialBufferSize)
Constructs a RandomAccessData with the given buffer size.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
array()
Returns the backing array.
|
java.io.InputStream |
asInputStream(int offset,
int length)
Returns an
InputStream wrapper which supplies the portion of this backing byte buffer
starting at offset and up to length bytes. |
java.io.OutputStream |
asOutputStream()
Returns an output stream which writes to the backing buffer from the current position.
|
RandomAccessData |
copy()
Returns a copy of this RandomAccessData.
|
boolean |
equals(java.lang.Object other) |
int |
hashCode() |
RandomAccessData |
increment()
Returns a RandomAccessData that is the smallest value of same length which
is strictly greater than this.
|
void |
readFrom(java.io.InputStream inStream,
int offset,
int length)
Reads
length bytes from the specified input stream writing them into the backing
data store starting at offset. |
void |
resetTo(int position)
Resets the end of the stream to the specified position.
|
int |
size()
Returns the number of bytes in the backing array that are valid.
|
java.lang.String |
toString() |
void |
writeTo(java.io.OutputStream out,
int offset,
int length)
Writes
length bytes starting at offset from the backing data store to the
specified output stream. |
public static final RandomAccessData.UnsignedLexicographicalComparator UNSIGNED_LEXICOGRAPHICAL_COMPARATOR
public RandomAccessData()
public RandomAccessData(byte[] initialBuffer)
public RandomAccessData(int initialBufferSize)
public RandomAccessData increment() throws java.io.IOException
The RandomAccessData.UnsignedLexicographicalComparator supports comparing RandomAccessData
with support for positive infinitiy.
java.io.IOExceptionpublic byte[] array()
public int size()
public void resetTo(int position)
public java.io.OutputStream asOutputStream()
public java.io.InputStream asInputStream(int offset,
int length)
InputStream wrapper which supplies the portion of this backing byte buffer
starting at offset and up to length bytes. Note that the returned
InputStream is only a wrapper and any modifications to the underlying
RandomAccessData will be visible by the InputStream.public void writeTo(java.io.OutputStream out,
int offset,
int length)
throws java.io.IOException
length bytes starting at offset from the backing data store to the
specified output stream.java.io.IOExceptionpublic void readFrom(java.io.InputStream inStream,
int offset,
int length)
throws java.io.IOException
length bytes from the specified input stream writing them into the backing
data store starting at offset.
Note that the in memory stream will be grown to ensure there is enough capacity.
java.io.IOExceptionpublic RandomAccessData copy() throws java.io.IOException
java.io.IOExceptionpublic boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Object