java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.util.zip.DeflaterOutputStream
java.util.zip.ZipOutputStream
- 所有已实现的接口:
-
Closeable
,Flushable
,AutoCloseable
- 直接已知的子类:
-
JarOutputStream
该类实现了一个用于写入ZIP文件格式的输出流过滤器。包括对压缩和未压缩条目的支持。
- 自JDK版本:
- 1.1
-
Field Summary
Modifier and TypeFieldDescriptionstatic 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
中央目录(END)头部第一个CEN头部字段偏移量。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
未压缩(STORED)条目的压缩方法。Fields declared in class java.util.zip.DeflaterOutputStream
buf, def
Fields declared in class java.io.FilterOutputStream
out
-
Constructor Summary
ConstructorDescription创建一个新的ZIP输出流。ZipOutputStream
(OutputStream out, Charset charset) 创建一个新的ZIP输出流。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
关闭ZIP输出流以及被过滤的流。void
关闭当前ZIP条目并将流定位到写入下一个条目。void
finish()
完成写入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条目数据。Methods declared in class java.util.zip.DeflaterOutputStream
deflate, flush, write
Methods declared in class java.io.FilterOutputStream
write
Methods declared in class java.io.OutputStream
nullOutputStream
-
Field Details
-
STORED
public static final int STORED未压缩(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 EXTSIZExtra local (EXT) header compressed size field offset.- 参见:
-
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中央目录(END)头部第一个 CEN 头部偏移量字段偏移量。- 参见:
-
ENDCOM
static final int ENDCOM中央目录(END)头部 ZIP 文件注释长度字段偏移量。- 参见:
-
-
Constructor Details
-
Method Details
-
setComment
设置 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
开始写入新的 ZIP 文件条目,并将流定位到条目数据的开头。如果仍在活动状态,则关闭当前条目。如果未为条目指定压缩方法,则将使用默认压缩方法。当写入压缩(DEFLATED)条目时,并且未使用
ZipEntry.setCompressedSize(long)
方法显式设置压缩大小时,压缩后将设置为实际压缩大小。如果条目没有设置修改时间,则将使用当前时间。
- API 注释:
-
当写入目录条目时,应使用 STORED 压缩方法,并将大小和 CRC-32 值设置为 0:
ZipEntry e = new ZipEntry(entryName); if (e.isDirectory()) { e.setMethod(ZipEntry.STORED); e.setSize(0); e.setCrc(0); } stream.putNextEntry(e);
- 参数:
-
e
- 要写入的 ZIP 条目 - 抛出:
-
ZipException
- 如果发生 ZIP 格式错误 -
IOException
- 如果发生 I/O 错误
-
closeEntry
关闭当前 ZIP 条目,并将流定位到写入下一个条目。- 抛出:
-
ZipException
- 如果发生 ZIP 格式错误 -
IOException
- 如果发生 I/O 错误
-
write
将字节数组写入当前 ZIP 条目数据。此方法将阻塞,直到所有字节都被写入。- 覆盖:
-
write
在类DeflaterOutputStream
- 参数:
-
b
- 要写入的数据 -
off
- 数据中的起始偏移量 -
len
- 要写入的字节数 - 抛出:
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I/O错误 - 参见:
-
finish
完成写入ZIP输出流的内容,而不关闭底层流。当对同一输出流连续应用多个过滤器时,请使用此方法。- 覆盖:
-
finish
在类DeflaterOutputStream
- 抛出:
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I/O异常
-
close
关闭ZIP输出流以及被过滤的流。- 指定者:
-
close
在接口AutoCloseable
- 指定者:
-
close
在接口Closeable
- 覆盖:
-
close
在类DeflaterOutputStream
- 抛出:
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I/O错误 - 参见:
-