public final class ParsableBitArray
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
byte[] |
data |
| Constructor and Description |
|---|
ParsableBitArray()
Creates a new instance that initially has no backing data.
|
ParsableBitArray(byte[] data)
Creates a new instance that wraps an existing array.
|
ParsableBitArray(byte[] data,
int limit)
Creates a new instance that wraps an existing array.
|
| Modifier and Type | Method and Description |
|---|---|
int |
bitsLeft()
Returns the number of bits yet to be read.
|
void |
byteAlign()
Aligns the position to the next byte boundary.
|
int |
getBytePosition()
Returns the current byte offset.
|
int |
getPosition()
Returns the current bit offset.
|
boolean |
readBit()
Reads a single bit.
|
int |
readBits(int numBits)
Reads up to 32 bits.
|
void |
readBytes(byte[] buffer,
int offset,
int length)
Reads the next
length bytes into buffer. |
void |
reset(byte[] data)
Updates the instance to wrap
data, and resets the position to zero. |
void |
reset(byte[] data,
int limit)
Updates the instance to wrap
data, and resets the position to zero. |
void |
setPosition(int position)
Sets the current bit offset.
|
void |
skipBits(int n)
Skips bits and moves current reading position forward.
|
void |
skipBytes(int length)
Skips the next
length bytes. |
public ParsableBitArray()
public ParsableBitArray(byte[] data)
data - The data to wrap.public ParsableBitArray(byte[] data,
int limit)
data - The data to wrap.limit - The limit in bytes.public void reset(byte[] data)
data, and resets the position to zero.data - The array to wrap.public void reset(byte[] data,
int limit)
data, and resets the position to zero.data - The array to wrap.limit - The limit in bytes.public int bitsLeft()
public int getPosition()
public int getBytePosition()
java.lang.IllegalStateException - If the position isn't byte aligned.public void setPosition(int position)
position - The position to set.public void skipBits(int n)
n - The number of bits to skip.public boolean readBit()
public int readBits(int numBits)
numBits - The number of bits to read.public void byteAlign()
public void readBytes(byte[] buffer,
int offset,
int length)
length bytes into buffer. Must only be called when the position
is byte aligned.buffer - The array into which the read data should be written.offset - The offset in buffer at which the read data should be written.length - The number of bytes to read.java.lang.IllegalStateException - If the position isn't byte aligned.System.arraycopy(Object, int, Object, int, int)public void skipBytes(int length)
length bytes. Must only be called when the position is byte aligned.length - The number of bytes to read.java.lang.IllegalStateException - If the position isn't byte aligned.