Module java.base
Package java.util.zip

Class GZIPInputStream

所有已实现的接口:
Closeable, AutoCloseable

public class GZIPInputStream extends InflaterInputStream
该类实现了用于读取GZIP文件格式中压缩数据的流过滤器。
自从:
1.1
参见:
  • Field Details

    • crc

      protected CRC32 crc
      未压缩数据的CRC-32。
    • eos

      protected boolean eos
      输入流结束指示。
    • GZIP_MAGIC

      public static final int GZIP_MAGIC
      GZIP 头的魔数。
      参见:
  • Constructor Details

    • GZIPInputStream

      public GZIPInputStream(InputStream in, int size) throws IOException
      使用指定缓冲区大小创建新的输入流。
      参数:
      in - 输入流
      size - 输入缓冲区大小
      抛出:
      ZipException - 如果发生 GZIP 格式错误或使用的压缩方法不受支持
      IOException - 如果发生 I/O 错误
      IllegalArgumentException - 如果 size <= 0
    • GZIPInputStream

      public GZIPInputStream(InputStream in) throws IOException
      使用默认缓冲区大小创建新的输入流。
      参数:
      in - 输入流
      抛出:
      ZipException - 如果发生 GZIP 格式错误或使用的压缩方法不受支持
      IOException - 如果发生 I/O 错误
  • Method Details

    • read

      public int read(byte[] buf, 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 在类 InflaterInputStream
      参数:
      buf - 读取数据的缓冲区
      off - 目标数组 buf 中的起始偏移量
      len - 最大读取字节数
      返回:
      实际膨胀字节数,如果到达压缩输入流的末尾则返回 -1
      抛出:
      NullPointerException - 如果 bufnull
      IndexOutOfBoundsException - 如果 off 为负数,len 为负数,或 len 大于 buf.length - off
      ZipException - 如果压缩输入数据损坏
      IOException - 如果发生 I/O 错误
      参见:
    • close

      public void close() throws IOException
      关闭此输入流并释放与流关联的任何系统资源。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      覆盖:
      close 在类 InflaterInputStream
      抛出:
      IOException - 如果发生 I/O 错误
      参见: