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
public class NonBlockingBitInputStream extends Object implements Closeable
TheNonBlockingBitInputStreamallows 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 seeBitInputStream- Author:
- Andreas Jakl, Philip Helger
-
-
Constructor Summary
Constructors Constructor Description NonBlockingBitInputStream(InputStream aIS, ByteOrder aByteOrder)Create a new bit input stream based on an existing Java InputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the underlying input stream.ByteOrdergetByteOrder()intreadBit()Read the next bit from the stream.intreadBits(int aNumberOfBits)Read a specified number of bits and return them combined as an integer value.StringtoString()
-
-
-
Constructor Detail
-
NonBlockingBitInputStream
public NonBlockingBitInputStream(@Nonnull InputStream aIS, @Nonnull ByteOrder aByteOrder)
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 Detail
-
readBits
public int readBits(@Nonnegative int aNumberOfBits) throws IOException
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
public int readBit() throws IOExceptionRead 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
-
-