模块 java.base

类 ZipOutputStream

所有已实现的接口:
Closeable , Flushable , AutoCloseable
已知子类:
JarOutputStream

public class ZipOutputStream extends DeflaterOutputStream
此类实现用于写入 ZIP 文件格式文件的输出流过滤器。包括对压缩和未压缩条目的支持。
自从:
1.1
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    中央目录 (CEN) 标头内部文件属性字段偏移量。
    static final int
    中央目录 (CEN) 标头外部文件属性字段偏移量。
    static final int
    中央目录 (CEN) 标头注释长度字段偏移量。
    static final int
    中央目录 (CEN) 标头未压缩文件 crc-32 值字段偏移量。
    static final int
    中央目录 (CEN) 头磁盘号起始字段偏移量。
    static final int
    中央目录 (CEN) 标头额外字段长度字段偏移量。
    static final int
    中央目录 (CEN) 标头加密、解密标志字段偏移量。
    static final int
    中央目录 (CEN) 标头大小(以字节为单位)(包括签名)。
    static final int
    中央目录 (CEN) 标头压缩方法字段偏移量。
    static final int
    中央目录 (CEN) 标头未压缩大小字段偏移量。
    static final int
    中央目录 (CEN) 头文件名长度字段偏移量。
    static final int
    中央目录 (CEN) 标头 LOC 标头偏移字段偏移量。
    static final long
    中央目录 (CEN) 标头签名。
    static final int
    中央目录 (CEN) 标头压缩大小字段偏移量。
    static final int
    中央目录 (CEN) 报头修改时间字段偏移量。
    static final int
    由字段偏移制作的中央目录 (CEN) 标头版本。
    static final int
    提取字段偏移量所需的中央目录 (CEN) 标头版本。
    static final int
    压缩(DEFLATED)条目的压缩方法。
    static final int
    中央目录结束 (END) 头 zip 文件注释长度字段偏移量。
    static final int
    中央目录 (END) 标头大小的结尾(以字节为单位)(包括签名)。
    static final int
    第一个 CEN 标头字段偏移量的中央目录结束 (END) 标头偏移量。
    static final long
    中央目录结束 (END) 标头签名。
    static final int
    中央目录结束 (END) 标头中央目录大小(字节字段偏移量)。
    static final int
    中央目录结束 (END) 标头中此磁盘字段偏移量的条目数。
    static final int
    中央目录结束 (END) 标头条目总数字段偏移量。
    static final int
    额外的本地 (EXT) 标头未压缩文件 crc-32 值字段偏移量。
    static final int
    以字节为单位的额外本地 (EXT) 标头大小(包括签名)。
    static final int
    额外的本地 (EXT) 标头未压缩大小字段偏移量。
    static final long
    额外的本地 (EXT) 标头签名。
    static final int
    额外本地 (EXT) 标头压缩大小字段偏移量。
    static final int
    本地文件 (LOC) 标头未压缩文件 crc-32 值字段偏移量。
    static final int
    本地文件 (LOC) 标头额外字段长度字段偏移量。
    static final int
    本地文件 (LOC) 标头通用位标志字段偏移量。
    static final int
    以字节为单位的本地文件 (LOC) 标头大小(包括签名)。
    static final int
    本地文件 (LOC) 标头压缩方法字段偏移量。
    static final int
    本地文件 (LOC) 标头未压缩大小字段偏移量。
    static final int
    本地文件 (LOC) 头文件名长度字段偏移量。
    static final long
    本地文件 (LOC) 标头签名。
    static final int
    本地文件 (LOC) 标头压缩大小字段偏移量。
    static final int
    本地文件 (LOC) 头修改时间字段偏移量。
    static final int
    提取字段偏移量所需的本地文件 (LOC) 标头版本。
    static final int
    未压缩(存储)条目的压缩方法。

    在类 java.util.zip.DeflaterOutputStream 中声明的字段

    buf, def

    在类 java.io.FilterOutputStream 中声明的字段

    out
  • 构造方法总结

    构造方法
    构造方法
    描述
    创建一个新的 ZIP 输出流。
    创建一个新的 ZIP 输出流。
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    关闭 ZIP 输出流以及被过滤的流。
    void
    关闭当前 ZIP 条目并定位流以写入下一个条目。
    void
    在不关闭基础流的情况下完成写入 ZIP 输出流的内容。
    void
    开始写入新的 ZIP 文件条目并将流定位到条目数据的开头。
    void
    setComment(String comment)
    设置 ZIP 文件注解。
    void
    setLevel(int level)
    为随后的 DEFLATED 条目设置压缩级别。
    void
    setMethod(int method)
    为后续条目设置默认压缩方法。
    void
    write(byte[] b, int off, int len)
    将字节数组写入当前 ZIP 条目数据。

    在类 java.util.zip.DeflaterOutputStream 中声明的方法

    deflate, flush, write

    在类 java.io.FilterOutputStream 中声明的方法

    write

    在类 java.io.OutputStream 中声明的方法

    nullOutputStream

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细信息

    • STORED

      public static final int STORED
      未压缩(存储)条目的压缩方法。
      参见:
    • DEFLATED

      public static final int DEFLATED
      压缩(DEFLATED)条目的压缩方法。
      参见:
    • LOCSIG

      static final long LOCSIG
      本地文件 (LOC) 标头签名。
      参见:
    • EXTSIG

      static final long EXTSIG
      额外的本地 (EXT) 标头签名。
      参见:
    • CENSIG

      static final long CENSIG
      中央目录 (CEN) 标头签名。
      参见:
    • ENDSIG

      static final long ENDSIG
      中央目录结束 (END) 标头签名。
      参见:
    • LOCHDR

      static final int LOCHDR
      以字节为单位的本地文件 (LOC) 标头大小(包括签名)。
      参见:
    • EXTHDR

      static final int EXTHDR
      以字节为单位的额外本地 (EXT) 标头大小(包括签名)。
      参见:
    • CENHDR

      static final int CENHDR
      中央目录 (CEN) 标头大小(以字节为单位)(包括签名)。
      参见:
    • ENDHDR

      static final int ENDHDR
      中央目录 (END) 标头大小的结尾(以字节为单位)(包括签名)。
      参见:
    • LOCVER

      static final int LOCVER
      提取字段偏移量所需的本地文件 (LOC) 标头版本。
      参见:
    • LOCFLG

      static final int LOCFLG
      本地文件 (LOC) 标头通用位标志字段偏移量。
      参见:
    • LOCHOW

      static final int LOCHOW
      本地文件 (LOC) 标头压缩方法字段偏移量。
      参见:
    • LOCTIM

      static final int LOCTIM
      本地文件 (LOC) 头修改时间字段偏移量。
      参见:
    • LOCCRC

      static final int LOCCRC
      本地文件 (LOC) 标头未压缩文件 crc-32 值字段偏移量。
      参见:
    • LOCSIZ

      static final int LOCSIZ
      本地文件 (LOC) 标头压缩大小字段偏移量。
      参见:
    • LOCLEN

      static final int LOCLEN
      本地文件 (LOC) 标头未压缩大小字段偏移量。
      参见:
    • LOCNAM

      static final int LOCNAM
      本地文件 (LOC) 头文件名长度字段偏移量。
      参见:
    • LOCEXT

      static final int LOCEXT
      本地文件 (LOC) 标头额外字段长度字段偏移量。
      参见:
    • EXTCRC

      static final int EXTCRC
      额外的本地 (EXT) 标头未压缩文件 crc-32 值字段偏移量。
      参见:
    • EXTSIZ

      static final int EXTSIZ
      额外本地 (EXT) 标头压缩大小字段偏移量。
      参见:
    • EXTLEN

      static final int EXTLEN
      额外的本地 (EXT) 标头未压缩大小字段偏移量。
      参见:
    • CENVEM

      static final int CENVEM
      由字段偏移制作的中央目录 (CEN) 标头版本。
      参见:
    • CENVER

      static final int CENVER
      提取字段偏移量所需的中央目录 (CEN) 标头版本。
      参见:
    • CENFLG

      static final int CENFLG
      中央目录 (CEN) 标头加密、解密标志字段偏移量。
      参见:
    • CENHOW

      static final int CENHOW
      中央目录 (CEN) 标头压缩方法字段偏移量。
      参见:
    • CENTIM

      static final int CENTIM
      中央目录 (CEN) 报头修改时间字段偏移量。
      参见:
    • CENCRC

      static final int CENCRC
      中央目录 (CEN) 标头未压缩文件 crc-32 值字段偏移量。
      参见:
    • CENSIZ

      static final int CENSIZ
      中央目录 (CEN) 标头压缩大小字段偏移量。
      参见:
    • CENLEN

      static final int CENLEN
      中央目录 (CEN) 标头未压缩大小字段偏移量。
      参见:
    • CENNAM

      static final int CENNAM
      中央目录 (CEN) 头文件名长度字段偏移量。
      参见:
    • CENEXT

      static final int CENEXT
      中央目录 (CEN) 标头额外字段长度字段偏移量。
      参见:
    • CENCOM

      static final int CENCOM
      中央目录 (CEN) 标头注释长度字段偏移量。
      参见:
    • CENDSK

      static final int CENDSK
      中央目录 (CEN) 头磁盘号起始字段偏移量。
      参见:
    • CENATT

      static final int CENATT
      中央目录 (CEN) 标头内部文件属性字段偏移量。
      参见:
    • CENATX

      static final int CENATX
      中央目录 (CEN) 标头外部文件属性字段偏移量。
      参见:
    • CENOFF

      static final int CENOFF
      中央目录 (CEN) 标头 LOC 标头偏移字段偏移量。
      参见:
    • ENDSUB

      static final int ENDSUB
      中央目录结束 (END) 标头中此磁盘字段偏移量的条目数。
      参见:
    • ENDTOT

      static final int ENDTOT
      中央目录结束 (END) 标头条目总数字段偏移量。
      参见:
    • ENDSIZ

      static final int ENDSIZ
      中央目录结束 (END) 标头中央目录大小(字节字段偏移量)。
      参见:
    • ENDOFF

      static final int ENDOFF
      第一个 CEN 标头字段偏移量的中央目录结束 (END) 标头偏移量。
      参见:
    • ENDCOM

      static final int ENDCOM
      中央目录结束 (END) 头 zip 文件注释长度字段偏移量。
      参见:
  • 构造方法详细信息

    • ZipOutputStream

      public ZipOutputStream(OutputStream  out)
      创建一个新的 ZIP 输出流。

      UTF-8 charset 用于对条目名称和注释进行编码。

      参数:
      out - 实际输出流
    • ZipOutputStream

      public ZipOutputStream(OutputStream  out, Charset  charset)
      创建一个新的 ZIP 输出流。
      参数:
      out - 实际输出流
      charset - 用于对条目名称和注释进行编码的 charset
      自从:
      1.7
  • 方法详情

    • setComment

      public void setComment(String  comment)
      设置 ZIP 文件注解。
      参数:
      comment - 注释字符串
      抛出:
      IllegalArgumentException - 如果指定 ZIP 文件注释的长度大于 0xFFFF 字节
    • setMethod

      public void setMethod(int method)
      为后续条目设置默认压缩方法。只要未为单个 ZIP 文件条目指定压缩方法,就会使用此默认值,并且最初设置为 DEFLATED。
      参数:
      method - 默认压缩方法
      抛出:
      IllegalArgumentException - 如果指定的压缩方法无效
    • setLevel

      public void setLevel(int level)
      为随后的 DEFLATED 条目设置压缩级别。默认设置为 DEFAULT_COMPRESSION。
      参数:
      level - 压缩级别 (0-9)
      抛出:
      IllegalArgumentException - 如果压缩级别无效
    • putNextEntry

      public void putNextEntry(ZipEntry  e) throws IOException
      开始写入新的 ZIP 文件条目并将流定位到条目数据的开头。如果仍处于活动状态,则关闭当前条目。

      如果没有为条目指定压缩方法,将使用默认压缩方法。当写入压缩(DEFLATED)条目时,压缩后的大小还没有通过ZipEntry.setCompressedSize(long) 方法显式设置,那么压缩后的大小将设置为实际压缩后的大小。

      如果条目没有设置修改时间,则将使用当前时间。

      参数:
      e - 要写入的 ZIP 条目
      抛出:
      ZipException - 如果出现 ZIP 格式错误
      IOException - 如果发生 I/O 错误
    • closeEntry

      public void closeEntry() throws IOException
      关闭当前 ZIP 条目并定位流以写入下一个条目。
      抛出:
      ZipException - 如果出现 ZIP 格式错误
      IOException - 如果发生 I/O 错误
    • write

      public void write(byte[] b, int off, int len) throws IOException
      将字节数组写入当前 ZIP 条目数据。此方法将阻塞,直到所有字节都被写入。
      重写:
      write 在类 DeflaterOutputStream
      参数:
      b - 要写入的数据
      off - 数据中的起始偏移量
      len - 写入的字节数
      抛出:
      ZipException - 如果发生 ZIP 文件错误
      IOException - 如果发生 I/O 错误
      参见:
    • finish

      public void finish() throws IOException
      在不关闭基础流的情况下完成写入 ZIP 输出流的内容。在将多个过滤器连续应用于同一输出流时使用此方法。
      重写:
      finish 在类 DeflaterOutputStream
      抛出:
      ZipException - 如果发生 ZIP 文件错误
      IOException - 如果发生 I/O 异常
    • close

      public void close() throws IOException
      关闭 ZIP 输出流以及被过滤的流。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      重写:
      close 在类 DeflaterOutputStream
      抛出:
      ZipException - 如果发生 ZIP 文件错误
      IOException - 如果发生 I/O 错误
      参见: