Class BitInputStream
java.lang.Object
org.apache.commons.compress.utils.BitInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
Reads bits from an InputStream.
- Since:
- 1.10
- This class is not thread-safe
-
Constructor Summary
ConstructorsConstructorDescriptionBitInputStream
(InputStream in, ByteOrder byteOrder) Constructor taking an InputStream and its bit arrangement. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Drops bits until the next bits will be read from a byte boundary.long
Returns an estimate of the number of bits that can be read from this input stream without blocking by the next invocation of a method for this input stream.int
Returns the number of bits that can be read from this input stream without reading from the underlying input stream at all.void
Clears the cache of bits that have been read from the underlying stream but not yet provided viareadBits(int)
.void
close()
long
Gets the number of bytes read from the underlying stream.int
readBit()
Reads and returns the next bit read from the underlying stream.long
readBits
(int count) Reads and returns at most 63 bits read from the underlying stream.
-
Constructor Details
-
Method Details
-
alignWithByteBoundary
Drops bits until the next bits will be read from a byte boundary.- Since:
- 1.16
-
bitsAvailable
Returns an estimate of the number of bits that can be read from this input stream without blocking by the next invocation of a method for this input stream.- Returns:
- estimate of the number of bits that can be read without blocking
- Throws:
IOException
- if the underlying stream throws one when calling available- Since:
- 1.16
-
bitsCached
Returns the number of bits that can be read from this input stream without reading from the underlying input stream at all.- Returns:
- estimate of the number of bits that can be read without reading from the underlying stream
- Since:
- 1.16
-
clearBitCache
Clears the cache of bits that have been read from the underlying stream but not yet provided viareadBits(int)
. -
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
getBytesRead
Gets the number of bytes read from the underlying stream.This includes the bytes read to fill the current cache and not read as bits so far.
- Returns:
- the number of bytes read from the underlying stream
- Since:
- 1.17
-
readBit
Reads and returns the next bit read from the underlying stream.- Returns:
- the next bit (0 or 1) or -1 if the end of the stream has been reached
- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.28
-
readBits
Reads and returns at most 63 bits read from the underlying stream.- Parameters:
count
- the number of bits to read, must be a positive number not bigger than 63.- Returns:
- the bits concatenated as a long using the stream's byte order. -1 if the end of the underlying stream has been reached before reading the requested number of bits
- Throws:
IOException
- if an I/O error occurs.
-