Class CBZip2InputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, BZip2Constants

    public class CBZip2InputStream
    extends java.io.InputStream
    implements BZip2Constants
    An input stream that decompresses from the BZip2 format (without the file header chars) to be read as any other stream.

    The decompression requires large amounts of memory. Thus you should call the close() method as soon as possible, to force CBZip2InputStream to release the allocated memory. See CBZip2OutputStream for information about memory usage.

    CBZip2InputStream reads bytes from the compressed source stream via the single byte read() method exclusively. Thus you should consider to use a buffered source stream.

    Instances of this class are not threadsafe.

    • Constructor Summary

      Constructors 
      Constructor Description
      CBZip2InputStream​(java.io.InputStream in)
      Constructs a new CBZip2InputStream which decompresses bytes read from the specified stream.
      CBZip2InputStream​(java.io.InputStream in, boolean decompressConcatenated)
      Constructs a new CBZip2InputStream which decompresses bytes read from the specified stream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      int read()
      int read​(byte[] dest, int offs, int len)  
      • Methods inherited from class java.io.InputStream

        available, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CBZip2InputStream

        public CBZip2InputStream​(java.io.InputStream in)
                          throws java.io.IOException
        Constructs a new CBZip2InputStream which decompresses bytes read from the specified stream. This doesn't support decompressing concatenated .bz2 files.

        Although BZip2 headers are marked with the magic "Bz" this constructor expects the next byte in the stream to be the first one after the magic. Thus callers have to skip the first two bytes. Otherwise this constructor will throw an exception.

        Parameters:
        in - InputStream
        Throws:
        java.io.IOException - if the stream content is malformed or an I/O error occurs.
        java.lang.NullPointerException - if in == null
      • CBZip2InputStream

        public CBZip2InputStream​(java.io.InputStream in,
                                 boolean decompressConcatenated)
                          throws java.io.IOException
        Constructs a new CBZip2InputStream which decompresses bytes read from the specified stream.

        Although BZip2 headers are marked with the magic "Bz" this constructor expects the next byte in the stream to be the first one after the magic. Thus callers have to skip the first two bytes. Otherwise this constructor will throw an exception.

        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 the stream content is malformed or an I/O error occurs.
        java.lang.NullPointerException - if in == null
    • 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
      • 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