Class 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 Detail

      • 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 Detail

      • 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