Class ByteBitInputStream
- java.lang.Object
-
- net.sourceforge.plantuml.code.deflate.ByteBitInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable,BitInputStream
public final class ByteBitInputStream extends Object implements BitInputStream
A stream of bits that can be read. Because they come from an underlying byte stream, the total number of bits is always a multiple of 8. The bits are read in little endian. Mutable and not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description ByteBitInputStream(InputStream in)Constructs a bit input stream based on the specified byte input stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this stream and the underlying input stream.intgetBitPosition()Returns the current bit position, which ascends from 0 to 7 as bits are read.intread()Reads a bit from this stream.intreadByte()Discards the remainder of the current byte (if any) and reads the next whole byte from the stream.intreadNoEof()Reads a bit from this stream.
-
-
-
Constructor Detail
-
ByteBitInputStream
public ByteBitInputStream(InputStream in)
Constructs a bit input stream based on the specified byte input stream.- Parameters:
in- the byte input stream (notnull)- Throws:
NullPointerException- if the input stream isnull
-
-
Method Detail
-
getBitPosition
public int getBitPosition()
Description copied from interface:BitInputStreamReturns the current bit position, which ascends from 0 to 7 as bits are read.- Specified by:
getBitPositionin interfaceBitInputStream- Returns:
- the current bit position, which is between 0 and 7
-
readByte
public int readByte() throws IOExceptionDescription copied from interface:BitInputStreamDiscards the remainder of the current byte (if any) and reads the next whole byte from the stream. Returns -1 if the end of stream is reached.- Specified by:
readBytein interfaceBitInputStream- Returns:
- the next byte from the stream, or -1 if the end of stream is reached
- Throws:
IOException
-
read
public int read() throws IOExceptionDescription copied from interface:BitInputStreamReads a bit from this stream. Returns 0 or 1 if a bit is available, or -1 if the end of stream is reached. The end of stream always occurs on a byte boundary.- Specified by:
readin interfaceBitInputStream- Returns:
- the next bit of 0 or 1, or -1 for the end of stream
- Throws:
IOException- if an I/O exception occurred
-
readNoEof
public int readNoEof() throws IOExceptionDescription copied from interface:BitInputStreamReads a bit from this stream. Returns 0 or 1 if a bit is available, or throws anEOFExceptionif the end of stream is reached. The end of stream always occurs on a byte boundary.- Specified by:
readNoEofin interfaceBitInputStream- Returns:
- the next bit of 0 or 1
- Throws:
IOException- if an I/O exception occurredEOFException- if the end of stream is reached
-
close
public void close() throws IOExceptionDescription copied from interface:BitInputStreamCloses this stream and the underlying input stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceBitInputStream- Specified by:
closein interfaceCloseable- Throws:
IOException- if an I/O exception occurred
-
-