Module java.base
Package java.util.zip

Class InflaterInputStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable
    Direct Known Subclasses:
    GZIPInputStream, ZipInputStream

    public class InflaterInputStream
    extends FilterInputStream
    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:
    Inflater
    • Field Detail

      • 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 Detail

      • 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 - if size <= 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 Detail

      • read

        public int read()
                 throws IOException
        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:
        FilterInputStream.in
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        Reads uncompressed data into an array of bytes. If len is not zero, the method will block until some input can be decompressed; otherwise, no bytes are read and 0 is returned.
        Overrides:
        read in class FilterInputStream
        Parameters:
        b - the buffer into which the data is read
        off - the start offset in the destination array b
        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 - If b is null.
        IndexOutOfBoundsException - If off is negative, len is negative, or len is greater than b.length - off
        ZipException - if a ZIP format error has occurred
        IOException - if an I/O error has occurred
        See Also:
        FilterInputStream.in
      • available

        public int available()
                      throws IOException
        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.
      • fill

        protected void fill()
                     throws IOException
        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 the mark and reset methods. The markSupported method of InflaterInputStream returns false.
        Overrides:
        markSupported in class FilterInputStream
        Returns:
        a boolean indicating if this stream type supports the mark and reset methods.
        See Also:
        InputStream.mark(int), InputStream.reset()
      • mark

        public void mark​(int readlimit)
        Marks the current position in this input stream.

        The mark method of InflaterInputStream does nothing.

        Overrides:
        mark in class FilterInputStream
        Parameters:
        readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
        See Also:
        InputStream.reset()

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部