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
    Constructs a bit input stream based on the specified byte input stream.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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
    Reads a bit from this stream.
    int
    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(InputStream in)
      Constructs a bit input stream based on the specified byte input stream.
      Parameters:
      in - the byte input stream (not null)
      Throws:
      NullPointerException - if the input stream is null
  • 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 interface BitInputStream
      Returns:
      the current bit position, which is between 0 and 7
    • readByte

      public int readByte() throws IOException
      Description 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 interface BitInputStream
      Returns:
      the next byte from the stream, or -1 if the end of stream is reached
      Throws:
      IOException
    • read

      public int read() throws IOException
      Description 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 interface BitInputStream
      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 IOException
      Description copied from interface: BitInputStream
      Reads a bit from this stream. Returns 0 or 1 if a bit is available, or throws an EOFException if the end of stream is reached. The end of stream always occurs on a byte boundary.
      Specified by:
      readNoEof in interface BitInputStream
      Returns:
      the next bit of 0 or 1
      Throws:
      IOException - if an I/O exception occurred
      EOFException - if the end of stream is reached
    • close

      public void close() throws IOException
      Description copied from interface: BitInputStream
      Closes this stream and the underlying input stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface BitInputStream
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if an I/O exception occurred