Class ByteBitInputStream
java.lang.Object
net.sourceforge.plantuml.code.deflate.ByteBitInputStream
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,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
ConstructorsConstructorDescriptionByteBitInputStream
(java.io.InputStream in) Constructs a bit input stream based on the specified byte input stream. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes this stream and the underlying input stream.int
Returns the current bit position, which ascends from 0 to 7 as bits are read.int
read()
Reads a bit from this stream.int
readByte()
Discards the remainder of the current byte (if any) and reads the next whole byte from the stream.int
Reads a bit from this stream.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ByteBitInputStream
public ByteBitInputStream(java.io.InputStream in) Constructs a bit input stream based on the specified byte input stream.- Parameters:
in
- the byte input stream (notnull
)- Throws:
java.lang.NullPointerException
- if the input stream isnull
-
-
Method Details
-
getBitPosition
public int getBitPosition()Description copied from interface:BitInputStream
Returns the current bit position, which ascends from 0 to 7 as bits are read.- Specified by:
getBitPosition
in interfaceBitInputStream
- Returns:
- the current bit position, which is between 0 and 7
-
readByte
public int readByte() throws java.io.IOExceptionDescription copied from interface:BitInputStream
Discards 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:
readByte
in interfaceBitInputStream
- Returns:
- the next byte from the stream, or -1 if the end of stream is reached
- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOExceptionDescription copied from interface:BitInputStream
Reads 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:
read
in interfaceBitInputStream
- Returns:
- the next bit of 0 or 1, or -1 for the end of stream
- Throws:
java.io.IOException
- if an I/O exception occurred
-
readNoEof
public int readNoEof() throws java.io.IOExceptionDescription copied from interface:BitInputStream
Reads a bit from this stream. Returns 0 or 1 if a bit is available, or throws anEOFException
if the end of stream is reached. The end of stream always occurs on a byte boundary.- Specified by:
readNoEof
in interfaceBitInputStream
- Returns:
- the next bit of 0 or 1
- Throws:
java.io.IOException
- if an I/O exception occurredjava.io.EOFException
- if the end of stream is reached
-
close
public void close() throws java.io.IOExceptionDescription copied from interface:BitInputStream
Closes this stream and the underlying input stream.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceBitInputStream
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
- if an I/O exception occurred
-