Package com.helger.commons.io.stream
Class NonBlockingBitInputStream
java.lang.Object
com.helger.commons.io.stream.NonBlockingBitInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
BitInputStream
The
For a thread-safe version see
NonBlockingBitInputStream allows reading individual bits from a
general Java InputStream. Like the various Stream-classes from Java, the
BitInputStream has to be created based on another Input stream. It provides a
function to read the next bit from the stream, as well as to read multiple
bits at once and write the resulting data into an integer value.For a thread-safe version see
BitInputStream- Author:
- Andreas Jakl, Philip Helger
-
Constructor Summary
ConstructorsConstructorDescriptionNonBlockingBitInputStream(InputStream aIS, ByteOrder aByteOrder) Create a new bit input stream based on an existing Java InputStream. -
Method Summary
-
Constructor Details
-
NonBlockingBitInputStream
Create a new bit input stream based on an existing Java InputStream.- Parameters:
aIS- the input stream this class should read the bits from. May not benull.aByteOrder- The non-nullbyte order to use.
-
-
Method Details
-
getByteOrder
- Returns:
- The byte order used. Never
null.
-
readBits
Read a specified number of bits and return them combined as an integer value. The bits are written to the integer starting at the highest bit ( << aNumberOfBits ), going down to the lowest bit ( << 0 ), so the returned ByteOrder is always LITTLE_ENDIAN!- Parameters:
aNumberOfBits- defines how many bits to read from the stream.- Returns:
- integer value containing the bits read from the stream.
- Throws:
IOException- In case EOF is reached
-
readBit
Read the next bit from the stream.- Returns:
- 0 if the bit is 0, 1 if the bit is 1.
- Throws:
IOException- In case EOF is reached
-
close
public void close()Close the underlying input stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
toString
-