Package loci.common
Class ByteArrayHandle
java.lang.Object
loci.common.AbstractNIOHandle
loci.common.ByteArrayHandle
- All Implemented Interfaces:
DataInput,DataOutput,IRandomAccess
A wrapper for a byte array that implements the IRandomAccess interface.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ByteBufferBacking ByteBuffer.protected static final intInitial length of a new file.Fields inherited from class loci.common.AbstractNIOHandle
EOF_ERROR_MSG -
Constructor Summary
ConstructorsConstructorDescriptionCreates a random access byte stream to write to a byte array.ByteArrayHandle(byte[] bytes) Creates a random access byte stream to read from, and write to, the bytes specified by the byte[] argument.ByteArrayHandle(int capacity) Creates a random access byte stream to read from, and write to.ByteArrayHandle(ByteBuffer bytes) Creates a random access byte stream to read from, and write to, the supplied ByteBuffer. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes this random access stream and releases any system resources associated with the stream.Gets the byte buffer backing this handle.byte[]getBytes()Gets a byte array representing the current state of this ByteArrayHandle.longReturns the current offset in this stream.getOrder()Returns the current order (endianness) of the stream.longlength()Returns the length of this stream.intread(byte[] b) Reads up to b.length bytes of data from this stream into an array of bytes.intread(byte[] b, int off, int len) Reads up to len bytes of data from this stream into an array of bytes.intread(ByteBuffer buf) Reads up to buffer.capacity() bytes of data from this stream into a ByteBuffer.intread(ByteBuffer buf, int off, int len) Reads up to len bytes of data from this stream into a ByteBuffer.booleanbytereadByte()charreadChar()doublefloatvoidreadFully(byte[] b) voidreadFully(byte[] b, int off, int len) intreadInt()readLine()longreadLong()shortintintreadUTF()voidseek(long pos) Sets the stream pointer offset, measured from the beginning of this stream, at which the next read or write occurs.voidsetLength(long length) Sets the new length of the handle.voidSets the byte order (endianness) of the stream.intskipBytes(int n) longskipBytes(long n) Alongvariant ofIRandomAccess.skipBytes(int).voidwrite(byte[] b) voidwrite(byte[] b, int off, int len) voidwrite(int b) voidwrite(ByteBuffer buf) Writes up to buffer.capacity() bytes of data from the given ByteBuffer to this stream.voidwrite(ByteBuffer buf, int off, int len) Writes up to len bytes of data from the given ByteBuffer to this stream.voidwriteBoolean(boolean v) voidwriteByte(int v) voidwriteBytes(String s) voidwriteChar(int v) voidwriteChars(String s) voidwriteDouble(double v) voidwriteFloat(float v) voidwriteInt(int v) voidwriteLong(long v) voidwriteShort(int v) voidMethods inherited from class loci.common.AbstractNIOHandle
exists, validateLength, validateMode
-
Field Details
-
INITIAL_LENGTH
protected static final int INITIAL_LENGTHInitial length of a new file.- See Also:
-
buffer
Backing ByteBuffer.
-
-
Constructor Details
-
ByteArrayHandle
public ByteArrayHandle(byte[] bytes) Creates a random access byte stream to read from, and write to, the bytes specified by the byte[] argument.- Parameters:
bytes- byte array to work with
-
ByteArrayHandle
Creates a random access byte stream to read from, and write to, the supplied ByteBuffer.- Parameters:
bytes- ByteBuffer used for reading and writing
-
ByteArrayHandle
public ByteArrayHandle(int capacity) Creates a random access byte stream to read from, and write to.- Parameters:
capacity- Number of bytes to initially allocate.
-
ByteArrayHandle
public ByteArrayHandle()Creates a random access byte stream to write to a byte array.
-
-
Method Details
-
getBytes
public byte[] getBytes()Gets a byte array representing the current state of this ByteArrayHandle.- Returns:
- a byte array representation of the backing ByteBuffer
-
getByteBuffer
Gets the byte buffer backing this handle. NOTE: This is the backing buffer. Any modifications to this buffer including position, length and capacity will affect subsequent calls upon its source handle.- Returns:
- Backing buffer of this handle.
-
setLength
Description copied from class:AbstractNIOHandleSets the new length of the handle.- Specified by:
setLengthin classAbstractNIOHandle- Parameters:
length- New length.- Throws:
IOException- If there is an error changing the handle's length.
-
close
public void close()Description copied from interface:IRandomAccessCloses this random access stream and releases any system resources associated with the stream. -
getFilePointer
public long getFilePointer()Description copied from interface:IRandomAccessReturns the current offset in this stream.- Returns:
- the current byte offset within the file; expected to be non-negative and less than the value of #length()
-
length
public long length()Description copied from interface:IRandomAccessReturns the length of this stream.- Returns:
- the length in bytes of the stream
-
read
Description copied from interface:IRandomAccessReads up to b.length bytes of data from this stream into an array of bytes.- Parameters:
b- the array to fill from this stream- Returns:
- the total number of bytes read into the buffer.
- Throws:
IOException- if reading is not possible
-
read
Description copied from interface:IRandomAccessReads up to len bytes of data from this stream into an array of bytes.- Parameters:
b- the array to fill from this streamoff- the offset inbfrom which to start filling; expected to be non-negative and no greater thanb.length - lenlen- the number of bytes to read; expected to be positive and no greater thanb.length - offset- Returns:
- the total number of bytes read into the buffer.
- Throws:
IOException- if reading is not possible
-
read
Description copied from interface:IRandomAccessReads up to buffer.capacity() bytes of data from this stream into a ByteBuffer.- Parameters:
buf- the ByteBuffer to fill from this stream- Returns:
- the total number of bytes read into the buffer.
- Throws:
IOException- if reading is not possible
-
read
Description copied from interface:IRandomAccessReads up to len bytes of data from this stream into a ByteBuffer.- Parameters:
buf- the ByteBuffer to fill from this streamoff- the offset inbfrom which to start filling; expected to be non-negative and no greater thanbuffer.capacity() - lenlen- the number of bytes to read; expected to be positive and no greater thanbuffer.capacity() - offset- Returns:
- the total number of bytes read into the buffer.
- Throws:
IOException- if reading is not possible
-
seek
Description copied from interface:IRandomAccessSets the stream pointer offset, measured from the beginning of this stream, at which the next read or write occurs.- Parameters:
pos- new byte offset (pointer) in the current stream. Unless otherwise noted, may be larger or smaller than the current pointer, but must be non-negative and less than the value of #length()- Throws:
IOException- ifposis invalid or the seek fails- See Also:
-
getOrder
Description copied from interface:IRandomAccessReturns the current order (endianness) of the stream.- Returns:
- See above.
-
setOrder
Description copied from interface:IRandomAccessSets the byte order (endianness) of the stream.- Parameters:
order- Order to set.
-
readBoolean
- Throws:
IOException
-
readByte
- Throws:
IOException
-
readChar
- Throws:
IOException
-
readDouble
- Throws:
IOException
-
readFloat
- Throws:
IOException
-
readFully
- Throws:
IOException
-
readFully
- Throws:
IOException
-
readInt
- Throws:
IOException
-
readLine
- Throws:
IOException
-
readLong
- Throws:
IOException
-
readShort
- Throws:
IOException
-
readUnsignedByte
- Throws:
IOException
-
readUnsignedShort
- Throws:
IOException
-
readUTF
- Throws:
IOException
-
skipBytes
- Throws:
IOException
-
skipBytes
Description copied from interface:IRandomAccessAlongvariant ofIRandomAccess.skipBytes(int).- Parameters:
n- the number of bytes to skip- Returns:
- the number of bytes skipped
- Throws:
IOException- if the operation failed
-
write
- Throws:
IOException
-
write
- Throws:
IOException
-
write
Description copied from interface:IRandomAccessWrites up to buffer.capacity() bytes of data from the given ByteBuffer to this stream.- Parameters:
buf- the ByteBuffer containing bytes to write to this stream- Throws:
IOException- if writing is not possible
-
write
Description copied from interface:IRandomAccessWrites up to len bytes of data from the given ByteBuffer to this stream.- Parameters:
buf- the ByteBuffer containing bytes to write to this streamoff- the offset inbfrom which to start writing; expected to be non-negative and no greater thanbuf.capacity() - lenlen- the number of bytes to write; expected to be positive and no greater thanbuf.capacity() - offset- Throws:
IOException- if writing is not possible
-
write
- Throws:
IOException
-
writeBoolean
- Throws:
IOException
-
writeByte
- Throws:
IOException
-
writeBytes
- Throws:
IOException
-
writeChar
- Throws:
IOException
-
writeChars
- Throws:
IOException
-
writeDouble
- Throws:
IOException
-
writeFloat
- Throws:
IOException
-
writeInt
- Throws:
IOException
-
writeLong
- Throws:
IOException
-
writeShort
- Throws:
IOException
-
writeUTF
- Throws:
IOException
-