public interface BitsInput
Modifier and Type | Method and Description |
---|---|
int |
getLength()
Returns the data length in bits (1 to 32 bits).
|
int |
readBits(boolean signExtends)
Reads the next value of data from the input stream.
|
int |
readBits(byte[] data,
boolean signExtends)
Reads some number of values from the input stream and stores them into the buffer array
data . |
int |
readBits(byte[] data,
int off,
int len,
boolean signExtends)
Reads up to
len values of data from the input stream into an array of values. |
int |
readBits(int[] data,
boolean signExtends)
Reads some number of values from the input stream and stores them into the buffer array
data . |
int |
readBits(int[] data,
int off,
int len,
boolean signExtends)
Reads up to
len values of data from the input stream into an array of values. |
int |
readBits(short[] data,
boolean signExtends)
Reads some number of values from the input stream and stores them into the buffer array
data . |
int |
readBits(short[] data,
int off,
int len,
boolean signExtends)
Reads up to
len values of data from the input stream into an array of values. |
int getLength()
int readBits(boolean signExtends) throws IOException, EOFException
int
in the range
0
to (1 << getLength) - 1
. If no value is available because the end of the stream
has been reached, the value an EOFException is thrown. This method blocks until input data is available, the end
of the stream is detected, or an exception is thrown.signExtends
- true to sign-extends the result using the formula
ret = (ret << (32-getLength())) >> (32-getLength())
IOException
- if an I/O error occurs. In particular, an IOException may be thrown if the input stream has been
closed.EOFException
- if the end of stream is reachedint readBits(byte[] data, boolean signExtends) throws IOException
data
. The
number of values actually read is returned as an integer. This method blocks until input value is available, end
of file is detected, or an exception is thrown.data
is null, a NullPointerException
is thrown. If the length of data
is zero, then no value are read and 0
is returned; otherwise, there is an attempt to read at least
one value. If no value is available because the stream is at end of file, an EOFException
is thrown;
otherwise, at least one value is read and stored into data
.data[0]
, the next one into data[1]
, and so
on. The number of value read is, at most, equal to the length of data
. Let k
be the
number of values actually read; these values will be stored in elements data[0]
through
data[k-1]
, leaving elements data[k]
through data[data.length-1]
unaffected.readBits(data, signExtends)
method for class BitsInput
has the same effect as:readBits(data, 0, data.length, signExtends)
data
- the buffer into which the values are read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.int readBits(byte[] data, int off, int len, boolean signExtends) throws IOException
len
values of data from the input stream into an array of values. An attempt is made to
read as many as len
values, but a smaller number may be read, possibly zero. The number of values
actually read is returned as an integer.data
is null, a NullPointerException is thrown.off
is negative, or len
is negative, or off+len
is greater than the
length of the array b
, then an IndexOutOfBoundsException is thrown.len
is zero, then no values are read and 0 is returned; otherwise, there is an attempt to read at
least one value. If no value is available because the stream is at end of file, the value -1 is returned;
otherwise, at least one value is read and stored into data
.data[off]
, the next one into data[off+1]
,
and so on. The number of values read is, at most, equal to len
. Let k
be the number of
values actually read; these values will be stored in elements data[off]
through
data[off+k-1]
, leaving elements data[off+k]
through data[off+len-1]
unaffected.data[0]
through data[off]
and elements
data[off+len]
through data[b.length-1]
are unaffected.readBits(data, off, len, signExtends)
method for class BitsInput simply calls the method
readBits(signExtends)
repeatedly. If the first such call results in an IOException, that exception
is returned from the call to the readBits(data,
off, len, signExte,ds)
method. If any subsequent call to readBits(boolean)
results in a
IOException, the exception is caught and treated as if it were end of file; the values read up to that point are
stored into data
and the number of values read before the exception occurred is returned. Subclasses
are encouraged to provide a more efficient implementation of this method.data
- the buffer into which the data is read.off
- the start offset in array data
at which the data is written.len
- the maximum number of values to read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.int readBits(int[] data, boolean signExtends) throws IOException
data
. The
number of values actually read is returned as an integer. This method blocks until input value is available, end
of file is detected, or an exception is thrown.data
is null, a NullPointerException
is thrown. If the length of data
is zero, then no value are read and 0
is returned; otherwise, there is an attempt to read at least
one value. If no value is available because the stream is at end of file, an EOFException
is thrown;
otherwise, at least one value is read and stored into data
.data[0]
, the next one into data[1]
, and so
on. The number of value read is, at most, equal to the length of data
. Let k
be the
number of values actually read; these values will be stored in elements data[0]
through
data[k-1]
, leaving elements data[k]
through data[data.length-1]
unaffected.readBits(data, signExtends)
method for class BitsInput
has the same effect as:readBits(data, 0, data.length, signExtends)
data
- the buffer into which the values are read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.int readBits(int[] data, int off, int len, boolean signExtends) throws IOException
len
values of data from the input stream into an array of values. An attempt is made to
read as many as len
values, but a smaller number may be read, possibly zero. The number of values
actually read is returned as an integer.data
is null, a NullPointerException is thrown.off
is negative, or len
is negative, or off+len
is greater than the
length of the array b
, then an IndexOutOfBoundsException is thrown.len
is zero, then no values are read and 0 is returned; otherwise, there is an attempt to read at
least one value. If no value is available because the stream is at end of file, the value -1 is returned;
otherwise, at least one value is read and stored into data
.data[off]
, the next one into data[off+1]
,
and so on. The number of values read is, at most, equal to len
. Let k
be the number of
values actually read; these values will be stored in elements data[off]
through
data[off+k-1]
, leaving elements data[off+k]
through data[off+len-1]
unaffected.data[0]
through data[off]
and elements
data[off+len]
through data[b.length-1]
are unaffected.readBits(data, off, len, signExtends)
method for class BitsInput simply calls the method
readBits(signExtends)
repeatedly. If the first such call results in an IOException, that exception
is returned from the call to the readBits(data,
off, len, signExte,ds)
method. If any subsequent call to readBits(boolean)
results in a
IOException, the exception is caught and treated as if it were end of file; the values read up to that point are
stored into data
and the number of values read before the exception occurred is returned. Subclasses
are encouraged to provide a more efficient implementation of this method.data
- the buffer into which the data is read.off
- the start offset in array data
at which the data is written.len
- the maximum number of values to read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.int readBits(short[] data, boolean signExtends) throws IOException
data
. The
number of values actually read is returned as an integer. This method blocks until input value is available, end
of file is detected, or an exception is thrown.data
is null, a NullPointerException
is thrown. If the length of data
is zero, then no value are read and 0
is returned; otherwise, there is an attempt to read at least
one value. If no value is available because the stream is at end of file, an EOFException
is thrown;
otherwise, at least one value is read and stored into data
.data[0]
, the next one into data[1]
, and so
on. The number of value read is, at most, equal to the length of data
. Let k
be the
number of values actually read; these values will be stored in elements data[0]
through
data[k-1]
, leaving elements data[k]
through data[data.length-1]
unaffected.readBits(data, signExtends)
method for class BitsInput
has the same effect as:readBits(data, 0, data.length, signExtends)
data
- the buffer into which the values are read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.int readBits(short[] data, int off, int len, boolean signExtends) throws IOException
len
values of data from the input stream into an array of values. An attempt is made to
read as many as len
values, but a smaller number may be read, possibly zero. The number of values
actually read is returned as an integer.data
is null, a NullPointerException is thrown.off
is negative, or len
is negative, or off+len
is greater than the
length of the array b
, then an IndexOutOfBoundsException is thrown.len
is zero, then no values are read and 0 is returned; otherwise, there is an attempt to read at
least one value. If no value is available because the stream is at end of file, the value -1 is returned;
otherwise, at least one value is read and stored into data
.data[off]
, the next one into data[off+1]
,
and so on. The number of values read is, at most, equal to len
. Let k
be the number of
values actually read; these values will be stored in elements data[off]
through
data[off+k-1]
, leaving elements data[off+k]
through data[off+len-1]
unaffected.data[0]
through data[off]
and elements
data[off+len]
through data[b.length-1]
are unaffected.readBits(data, off, len, signExtends)
method for class BitsInput simply calls the method
readBits(signExtends)
repeatedly. If the first such call results in an IOException, that exception
is returned from the call to the readBits(data,
off, len, signExte,ds)
method. If any subsequent call to readBits(boolean)
results in a
IOException, the exception is caught and treated as if it were end of file; the values read up to that point are
stored into data
and the number of values read before the exception occurred is returned. Subclasses
are encouraged to provide a more efficient implementation of this method.data
- the buffer into which the data is read.off
- the start offset in array data
at which the data is written.len
- the maximum number of values to read.signExtends
- true to sign-extends the result.IOException
- if an I/O error occurs.