Class BZip2CompressorInputStream

    • Field Detail

      • last

        private int last
        Index of the last char in the block, so the block size == last + 1.
      • origPtr

        private int origPtr
        Index in zptr[] of original string after sorting.
      • blockSize100k

        private int blockSize100k
        always: in the range 0 .. 9. The current block size is 100000 * this number.
      • blockRandomised

        private boolean blockRandomised
      • crc

        private final CRC crc
      • nInUse

        private int nInUse
      • decompressConcatenated

        private final boolean decompressConcatenated
      • currentState

        private int currentState
      • storedBlockCRC

        private int storedBlockCRC
      • storedCombinedCRC

        private int storedCombinedCRC
      • computedBlockCRC

        private int computedBlockCRC
      • computedCombinedCRC

        private int computedCombinedCRC
      • su_count

        private int su_count
      • su_ch2

        private int su_ch2
      • su_chPrev

        private int su_chPrev
      • su_i2

        private int su_i2
      • su_j2

        private int su_j2
      • su_rNToGo

        private int su_rNToGo
      • su_rTPos

        private int su_rTPos
      • su_tPos

        private int su_tPos
      • su_z

        private char su_z
    • Constructor Detail

      • BZip2CompressorInputStream

        public BZip2CompressorInputStream​(java.io.InputStream in)
                                   throws java.io.IOException
        Constructs a new BZip2CompressorInputStream which decompresses bytes read from the specified stream. This doesn't suppprt decompressing concatenated .bz2 files.
        Parameters:
        in - the InputStream from which this object should be created
        Throws:
        java.io.IOException - if the stream content is malformed or an I/O error occurs.
        java.lang.NullPointerException - if in == null
      • BZip2CompressorInputStream

        public BZip2CompressorInputStream​(java.io.InputStream in,
                                          boolean decompressConcatenated)
                                   throws java.io.IOException
        Constructs a new BZip2CompressorInputStream which decompresses bytes read from the specified stream.
        Parameters:
        in - the InputStream from which this object should be created
        decompressConcatenated - if true, decompress until the end of the input; if false, stop after the first .bz2 stream and leave the input position to point to the next byte after the .bz2 stream
        Throws:
        java.io.IOException - if in == null, the stream content is malformed, or an I/O error occurs.
    • Method Detail

      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] dest,
                        int offs,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • getCompressedCount

        public long getCompressedCount()
        Specified by:
        getCompressedCount in interface InputStreamStatistics
        Returns:
        the amount of raw or compressed bytes read by the stream
        Since:
        1.17
      • makeMaps

        private void makeMaps()
      • read0

        private int read0()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • readNextByte

        private int readNextByte​(BitInputStream in)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • init

        private boolean init​(boolean isFirstStream)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • initBlock

        private void initBlock()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • endBlock

        private void endBlock()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • complete

        private boolean complete()
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException
      • bsR

        private static int bsR​(BitInputStream bin,
                               int n)
                        throws java.io.IOException
        read bits from the input stream
        Parameters:
        n - the number of bits to read, must not exceed 32?
        Returns:
        the requested bits combined into an int
        Throws:
        java.io.IOException
      • bsGetBit

        private static boolean bsGetBit​(BitInputStream bin)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • bsGetUByte

        private static char bsGetUByte​(BitInputStream bin)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • bsGetInt

        private static int bsGetInt​(BitInputStream bin)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • checkBounds

        private static void checkBounds​(int checkVal,
                                        int limitExclusive,
                                        java.lang.String name)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • hbCreateDecodeTables

        private static void hbCreateDecodeTables​(int[] limit,
                                                 int[] base,
                                                 int[] perm,
                                                 char[] length,
                                                 int minLen,
                                                 int maxLen,
                                                 int alphaSize)
                                          throws java.io.IOException
        Called by createHuffmanDecodingTables() exclusively.
        Throws:
        java.io.IOException
      • recvDecodingTables

        private void recvDecodingTables()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • createHuffmanDecodingTables

        private void createHuffmanDecodingTables​(int alphaSize,
                                                 int nGroups)
                                          throws java.io.IOException
        Called by recvDecodingTables() exclusively.
        Throws:
        java.io.IOException
      • getAndMoveToFrontDecode

        private void getAndMoveToFrontDecode()
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • getAndMoveToFrontDecode0

        private int getAndMoveToFrontDecode0()
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • setupBlock

        private int setupBlock()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • setupRandPartA

        private int setupRandPartA()
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • setupNoRandPartA

        private int setupNoRandPartA()
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • setupRandPartB

        private int setupRandPartB()
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • setupRandPartC

        private int setupRandPartC()
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • setupNoRandPartB

        private int setupNoRandPartB()
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • setupNoRandPartC

        private int setupNoRandPartC()
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • matches

        public static boolean matches​(byte[] signature,
                                      int length)
        Checks if the signature matches what is expected for a bzip2 file.
        Parameters:
        signature - the bytes to check
        length - the number of bytes to check
        Returns:
        true, if this stream is a bzip2 compressed stream, false otherwise
        Since:
        1.1