Module  java.base
软件包  java.util.zip

Class InflaterInputStream

  • All Implemented Interfaces:
    CloseableAutoCloseable
    已知直接子类:
    GZIPInputStreamZipInputStream


    public class InflaterInputStream
    extends FilterInputStream
    该类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。 它也被用作其他减压滤波器的基础,如GZIPInputStream。
    从以下版本开始:
    1.1
    另请参见:
    Inflater
    • 字段详细信息

      • inf

        protected Inflater inf
        解压缩此流。
      • buf

        protected byte[] buf
        用于解压缩的输入缓冲区。
      • len

        protected int len
        输入缓冲区的长度。
    • 构造方法详细信息

      • InflaterInputStream

        public InflaterInputStream​(InputStream in,
                                   Inflater inf,
                                   int size)
        使用指定的解压缩器和缓冲区大小创建新的输入流。
        参数
        in - 输入流
        inf - 解压缩器(“inflater”)
        size - 输入缓冲区大小
        异常
        IllegalArgumentException - 如果是 size <= 0
      • InflaterInputStream

        public InflaterInputStream​(InputStream in,
                                   Inflater inf)
        使用指定的解压缩器和默认缓冲区大小创建新的输入流。
        参数
        in - 输入流
        inf - 解压缩器(“inflater”)
      • InflaterInputStream

        public InflaterInputStream​(InputStream in)
        使用默认解压缩器和缓冲区大小创建新的输入流。
        参数
        in - 输入流
    • 方法详细信息

      • read

        public int read​()
                 throws IOException
        读取一个字节的未压缩数据。 该方法将阻塞,直到有足够的输入可用于解压缩。
        重写:
        readFilterInputStream
        结果
        读取字节,如果达到压缩输入结束,则返回-1
        异常
        IOException - 如果发生I / O错误
        另请参见:
        FilterInputStream.in
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        将未压缩的数据读入字节数组。 如果len不为零,则该方法将阻塞,直到可以解压缩某些输入; 否则,不会读取字节,并返回0
        重写:
        readFilterInputStream
        参数
        b - 读取数据的缓冲区
        off - 目标数组 b的起始偏移量
        len - 读取的最大字节数
        结果
        读取的实际字节数,如果达到压缩输入的结尾或需要预设字典,则为-1
        异常
        NullPointerException - 如果 bnull
        IndexOutOfBoundsException - 如果 off为负,则 len为负数,或 len大于 b.length - off
        ZipException - 如果发生ZIP格式错误
        IOException - 如果发生I / O错误
        另请参见:
        FilterInputStream.in
      • available

        public int available​()
                      throws IOException
        到达EOF后返回0,否则总是返回1。

        程序不应该依赖此方法来返回可以读取而不阻止的实际字节数。

        重写:
        availableFilterInputStream
        结果
        EOF前为1,EOF为0。
        异常
        IOException - 如果发生I / O错误。
      • fill

        protected void fill​()
                     throws IOException
        填写输入缓冲区以获得更多的数据解压缩。
        异常
        IOException - 如果发生I / O错误
      • mark

        public void mark​(int readlimit)
        标记此输入流中的当前位置。

        mark的方法InflaterInputStream什么都不做。

        重写:
        markFilterInputStream
        参数
        readlimit - 在标记位置无效之前可以读取的最大字节数限制。
        另请参见:
        InputStream.reset()