Package loci.common

Class CBZip2InputStream

java.lang.Object
java.io.InputStream
loci.common.CBZip2InputStream
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable

public class CBZip2InputStream
extends java.io.InputStream
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 using 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.
  • Method Summary

    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, skipNBytes, transferTo

    Methods inherited from class java.lang.Object

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

    • CBZip2InputStream

      public CBZip2InputStream​(java.io.InputStream in) 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 - stream from which to read BZip2 data; expected to be set to the first byte past the 2 byte magic marker
      Throws:
      java.io.IOException - if the stream content is malformed or an I/O error occurs.
      java.lang.NullPointerException - if in == null
  • Method Details

    • 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