## net.i2p.util
Class ResettableGZIPInputStream

    java.lang.Object
      java.io.InputStream
          java.io.FilterInputStream
              java.util.zip.InflaterInputStream
                  net.i2p.util.ResettableGZIPInputStream

All Implemented Interfaces:
  Closeable

Direct Known Subclasses:
  ReusableGZIPInputStream

    public class ResettableGZIPInputStream

extends InflaterInputStream

GZIP implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterInputStream implementations. The main difference is that this implementation allows its state to be reset to initial values, and hence reused, while the standard GZIPInputStream reads the GZIP header from the stream on instantiation.

Field Summary

Fields inherited from class java.util.zip.InflaterInputStream
`buf, inf, len`

Fields inherited from class java.io.FilterInputStream
`in`

Constructor Summary
`ResettableGZIPInputStream()` Build a new GZIP stream without a bound compressed stream.
`ResettableGZIPInputStream(InputStream compressedStream)`

Method Summary
`(package private) long` `getCurrentCRCVal()`
`void` `initialize(InputStream compressedStream)` Blocking call to initialize this stream with the data from the given compressed stream.
`int` `read()`
`int` `read(byte[] buf)`
`int` `read(byte[] buf, int off, int len)`
`(package private) void` `verifyFooter()`

Methods inherited from class java.util.zip.InflaterInputStream
`available, close, fill, mark, markSupported, reset, skip`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ResettableGZIPInputStream

    public ResettableGZIPInputStream()

  Build a new GZIP stream without a bound compressed stream. You need to initialize this with initialize(compressedStream) when you want to decompress a stream.

### ResettableGZIPInputStream

    public ResettableGZIPInputStream(InputStream compressedStream)
                              throws IOException

Throws:
  `IOException`

Method Detail

### initialize

    public void initialize(InputStream compressedStream)
                    throws IOException

  Blocking call to initialize this stream with the data from the given compressed stream.

  Throws:
    `IOException`

### read

    public int read()
             throws IOException

  Overrides:
    `read` in class `InflaterInputStream`
  Throws:
    `IOException`

### read

    public int read(byte[] buf)
             throws IOException

  Overrides:
    `read` in class `FilterInputStream`
  Throws:
    `IOException`

### read

    public int read(byte[] buf,
                    int off,
                    int len)
             throws IOException

  Overrides:
    `read` in class `InflaterInputStream`
  Throws:
    `IOException`

### getCurrentCRCVal

    long getCurrentCRCVal()

### verifyFooter

    void verifyFooter()
                throws IOException

  Throws:
    `IOException`