模块 java.base

类 InflaterInputStream

所有已实现的接口:
Closeable , AutoCloseable
已知子类:
GZIPInputStream , ZipInputStream

public class InflaterInputStream extends FilterInputStream
此类实现了一个流过滤器,用于以“deflate”压缩格式解压缩数据。它还用作其他解压缩过滤器的基础,例如 GZIPInputStream。
自从:
1.1
参见:
  • 字段详细信息

    • 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
      读取一个字节的未压缩数据。此方法将阻塞,直到有足够的输入可用于解压缩。
      重写:
      read 在类 FilterInputStream
      返回:
      读取的字节,如果到达压缩输入的末尾则为 -1
      抛出:
      IOException - 如果发生 I/O 错误
      参见:
    • read

      public int read(byte[] b, int off, int len) throws IOException
      将未压缩的数据读入字节数组,返回膨胀的字节数。如果 len 不为零,该方法将阻塞,直到可以解压缩某些输入;否则,不读取任何字节并返回 0

      如果此方法返回非零整数n然后 buf[off] 通过 buf[off+n-1] 包含未压缩的数据。元素内容buf[off+n]buf[off+len-1] 未定义,与 InputStream 超类的规范相反,因此实现可以在膨胀操作期间自由修改这些元素。如果此方法返回 -1 或抛出异常,则 buf[off]buf[off+ 的内容len -1] 未定义。

      重写:
      read 在类 FilterInputStream
      参数:
      b - 读取数据的缓冲区
      off - 目标数组中的起始偏移量 b
      len - 读取的最大字节数
      返回:
      膨胀的实际字节数,如果已达到压缩输入的末尾或需要预设字典,则为 -1
      抛出:
      NullPointerException - 如果 bnull
      IndexOutOfBoundsException - 如果 off 为负,len 为负,或者 len 大于 b.length - off
      ZipException - 如果出现 ZIP 格式错误
      IOException - 如果发生 I/O 错误
      参见:
    • available

      public int available() throws IOException
      到达 EOF 后返回 0,否则始终返回 1。

      程序不应指望此方法返回可以无阻塞读取的实际字节数。

      重写:
      available 在类 FilterInputStream
      返回:
      EOF 之前为 1,EOF 之后为 0。
      抛出:
      IOException - 如果发生 I/O 错误。
    • skip

      public long skip(long n) throws IOException
      跳过指定字节数的未压缩数据。
      重写:
      skip 在类 FilterInputStream
      参数:
      n - 要跳过的字节数
      返回:
      实际跳过的字节数。
      抛出:
      IOException - 如果发生 I/O 错误
      IllegalArgumentException - 如果 n < 0
      参见:
    • close

      public void close() throws IOException
      关闭此输入流并释放与该流关联的所有系统资源。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      重写:
      close 在类 FilterInputStream
      抛出:
      IOException - 如果发生 I/O 错误
      参见:
    • fill

      protected void fill() throws IOException
      用更多数据填充输入缓冲区以解压缩。
      实现要求:
      此方法将从元素 0 开始读取最多 buf .length 个字节到输入缓冲区 buf 中。 len 字段将设置为读取的字节数。
      抛出:
      IOException - 如果发生 I/O 错误
      EOFException - 如果意外到达输入流的末尾
    • markSupported

      public boolean markSupported()
      测试此输入流是否支持 markreset 方法。 InflaterInputStreammarkSupported 方法返回 false
      重写:
      markSupported 在类 FilterInputStream
      返回:
      boolean 指示此流类型是否支持 markreset 方法。
      参见:
    • mark

      public void mark(int readlimit)
      标记此输入流中的当前位置。
      重写:
      mark 在类 FilterInputStream
      实现要求:
      InflaterInputStreammark 方法什么都不做。
      参数:
      readlimit - 在标记位置变为无效之前可以读取的最大字节数限制。
      参见:
    • reset

      public void reset() throws IOException
      将此流重新定位到上次对此输入流调用 mark 方法时的位置。
      重写:
      reset 在类 FilterInputStream
      实现要求:
      InflaterInputStream 的方法 reset 除了抛出一个 IOException 之外什么都不做。
      抛出:
      IOException - 如果调用此方法。
      参见: