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

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `(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`