Module java.base
Package java.util.zip

Class InflaterInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
All Implemented Interfaces:
Closeable,AutoCloseable
Direct Known Subclasses:
GZIPInputStream,ZipInputStream

public classInflaterInputStreamextendsFilterInputStream
This class implements a stream filter for uncompressing data in the "deflate" compression format. It is also used as the basis for other decompression filters, such as GZIPInputStream.
Since:
1.1
See Also:
  • Field Details

    • inf

      protected Inflater inf
      Decompressor for this stream.
    • buf

      protected byte[] buf
      Input buffer for decompression.
    • len

      protected int len
      Length of input buffer.
  • Constructor Details

    • InflaterInputStream

      public InflaterInputStream(InputStream in,Inflater inf, int size)
      Creates a new input stream with the specified decompressor and buffer size.
      Parameters:
      in - the input stream
      inf - the decompressor ("inflater")
      size - the input buffer size
      Throws:
      IllegalArgumentException - ifsize <= 0
    • InflaterInputStream

      public InflaterInputStream(InputStream in,Inflater inf)
      Creates a new input stream with the specified decompressor and a default buffer size.
      Parameters:
      in - the input stream
      inf - the decompressor ("inflater")
    • InflaterInputStream

      public InflaterInputStream(InputStream in)
      Creates a new input stream with a default decompressor and buffer size.
      Parameters:
      in - the input stream
  • Method Details

    • read

      public int read() throwsIOException
      Reads a byte of uncompressed data. This method will block until enough input is available for decompression.
      Overrides:
      read in class FilterInputStream
      Returns:
      the byte read, or -1 if end of compressed input is reached
      Throws:
      IOException - if an I/O error has occurred
      See Also:
    • read

      public int read(byte[] b, int off, int len) throwsIOException
      Reads uncompressed data into an array of bytes. Iflen is not zero, the method will block until some input can be decompressed; otherwise, no bytes are read and0 is returned.
      Overrides:
      read in class FilterInputStream
      Parameters:
      b - the buffer into which the data is read
      off - the start offset in the destination arrayb
      len - the maximum number of bytes read
      Returns:
      the actual number of bytes read, or -1 if the end of the compressed input is reached or a preset dictionary is needed
      Throws:
      NullPointerException - Ifb isnull.
      IndexOutOfBoundsException - Ifoff is negative,len is negative, orlen is greater thanb.length - off
      ZipException - if a ZIP format error has occurred
      IOException - if an I/O error has occurred
      See Also:
    • available

      public int available() throwsIOException
      Returns 0 after EOF has been reached, otherwise always return 1.

      Programs should not count on this method to return the actual number of bytes that could be read without blocking.

      Overrides:
      available in class FilterInputStream
      Returns:
      1 before EOF and 0 after EOF.
      Throws:
      IOException - if an I/O error occurs.
    • skip

      public long skip(long n) throwsIOException
      Skips specified number of bytes of uncompressed data.
      Overrides:
      skip in class FilterInputStream
      Parameters:
      n - the number of bytes to skip
      Returns:
      the actual number of bytes skipped.
      Throws:
      IOException - if an I/O error has occurred
      IllegalArgumentException - ifn < 0
      See Also:
    • close

      public void close() throwsIOException
      Closes this input stream and releases any system resources associated with the stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class FilterInputStream
      Throws:
      IOException - if an I/O error has occurred
      See Also:
    • fill

      protected void fill() throwsIOException
      Fills input buffer with more data to decompress.
      Throws:
      IOException - if an I/O error has occurred
    • markSupported

      public boolean markSupported()
      Tests if this input stream supports themark andreset methods. ThemarkSupported method ofInflaterInputStream returnsfalse.
      Overrides:
      markSupported in class FilterInputStream
      Returns:
      aboolean indicating if this stream type supports themark andreset methods.
      See Also:
    • mark

      public void mark(int readlimit)
      Marks the current position in this input stream.
      Overrides:
      mark in class FilterInputStream
      Implementation Requirements:
      Themark method ofInflaterInputStream does nothing.
      Parameters:
      readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
      See Also:
    • reset

      public void reset() throwsIOException
      Repositions this stream to the position at the time themark method was last called on this input stream.
      Overrides:
      reset in class FilterInputStream
      Implementation Requirements:
      The methodreset for classInflaterInputStream does nothing except throw anIOException.
      Throws:
      IOException - if this method is invoked.
      See Also: