- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.util.zip.DeflaterOutputStream
-
- java.util.zip.ZipOutputStream
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,AutoCloseable
- 已知直接子类:
-
JarOutputStream
public class ZipOutputStream extends DeflaterOutputStream
该类实现了以ZIP文件格式写入文件的输出流过滤器。 包括对压缩和未压缩条目的支持。- 从以下版本开始:
- 1.1
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
CENATT
static int
CENATX
static int
CENCOM
static int
CENCRC
static int
CENDSK
static int
CENEXT
static int
CENFLG
static int
CENHDR
static int
CENHOW
static int
CENLEN
static int
CENNAM
static int
CENOFF
static long
CENSIG
static int
CENSIZ
static int
CENTIM
static int
CENVEM
static int
CENVER
static int
DEFLATED
压缩(DEFLATED)条目的压缩方法。static int
ENDCOM
static int
ENDHDR
static int
ENDOFF
static long
ENDSIG
static int
ENDSIZ
static int
ENDSUB
static int
ENDTOT
static int
EXTCRC
static int
EXTHDR
static int
EXTLEN
static long
EXTSIG
static int
EXTSIZ
static int
LOCCRC
static int
LOCEXT
static int
LOCFLG
static int
LOCHDR
static int
LOCHOW
static int
LOCLEN
static int
LOCNAM
static long
LOCSIG
static int
LOCSIZ
static int
LOCTIM
static int
LOCVER
static int
STORED
未压缩(STORED)条目的压缩方法。-
Fields inherited from class java.util.zip.DeflaterOutputStream
buf, def
-
Fields inherited from class java.io.FilterOutputStream
out
-
-
构造方法摘要
构造方法 Constructor 描述 ZipOutputStream(OutputStream out)
创建一个新的ZIP输出流。ZipOutputStream(OutputStream out, Charset charset)
创建一个新的ZIP输出流。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
close()
关闭ZIP输出流以及正在过滤的流。void
closeEntry()
关闭当前的ZIP条目,并定位流以写入下一个条目。void
finish()
完成编写ZIP输出流的内容,而不关闭底层流。void
putNextEntry(ZipEntry e)
开始编写新的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 inherited from class java.util.zip.DeflaterOutputStream
deflate, flush, write
-
Methods inherited from class java.io.FilterOutputStream
write
-
-
-
-
字段详细信息
-
STORED
public static final int STORED
未压缩(STORED)条目的压缩方法。- 另请参见:
- Constant Field Values
-
DEFLATED
public static final int DEFLATED
压缩(DEFLATED)条目的压缩方法。- 另请参见:
- Constant Field Values
-
LOCSIG
public static final long LOCSIG
- 另请参见:
- Constant Field Values
-
EXTSIG
public static final long EXTSIG
- 另请参见:
- Constant Field Values
-
CENSIG
public static final long CENSIG
- 另请参见:
- Constant Field Values
-
ENDSIG
public static final long ENDSIG
- 另请参见:
- Constant Field Values
-
LOCHDR
public static final int LOCHDR
- 另请参见:
- Constant Field Values
-
EXTHDR
public static final int EXTHDR
- 另请参见:
- Constant Field Values
-
CENHDR
public static final int CENHDR
- 另请参见:
- Constant Field Values
-
ENDHDR
public static final int ENDHDR
- 另请参见:
- Constant Field Values
-
LOCVER
public static final int LOCVER
- 另请参见:
- Constant Field Values
-
LOCFLG
public static final int LOCFLG
- 另请参见:
- Constant Field Values
-
LOCHOW
public static final int LOCHOW
- 另请参见:
- Constant Field Values
-
LOCTIM
public static final int LOCTIM
- 另请参见:
- Constant Field Values
-
LOCCRC
public static final int LOCCRC
- 另请参见:
- Constant Field Values
-
LOCSIZ
public static final int LOCSIZ
- 另请参见:
- Constant Field Values
-
LOCLEN
public static final int LOCLEN
- 另请参见:
- Constant Field Values
-
LOCNAM
public static final int LOCNAM
- 另请参见:
- Constant Field Values
-
LOCEXT
public static final int LOCEXT
- 另请参见:
- Constant Field Values
-
EXTCRC
public static final int EXTCRC
- 另请参见:
- Constant Field Values
-
EXTSIZ
public static final int EXTSIZ
- 另请参见:
- Constant Field Values
-
EXTLEN
public static final int EXTLEN
- 另请参见:
- Constant Field Values
-
CENVEM
public static final int CENVEM
- 另请参见:
- Constant Field Values
-
CENVER
public static final int CENVER
- 另请参见:
- Constant Field Values
-
CENFLG
public static final int CENFLG
- 另请参见:
- Constant Field Values
-
CENHOW
public static final int CENHOW
- 另请参见:
- Constant Field Values
-
CENTIM
public static final int CENTIM
- 另请参见:
- Constant Field Values
-
CENCRC
public static final int CENCRC
- 另请参见:
- Constant Field Values
-
CENSIZ
public static final int CENSIZ
- 另请参见:
- Constant Field Values
-
CENLEN
public static final int CENLEN
- 另请参见:
- Constant Field Values
-
CENNAM
public static final int CENNAM
- 另请参见:
- Constant Field Values
-
CENEXT
public static final int CENEXT
- 另请参见:
- Constant Field Values
-
CENCOM
public static final int CENCOM
- 另请参见:
- Constant Field Values
-
CENDSK
public static final int CENDSK
- 另请参见:
- Constant Field Values
-
CENATT
public static final int CENATT
- 另请参见:
- Constant Field Values
-
CENATX
public static final int CENATX
- 另请参见:
- Constant Field Values
-
CENOFF
public static final int CENOFF
- 另请参见:
- Constant Field Values
-
ENDSUB
public static final int ENDSUB
- 另请参见:
- Constant Field Values
-
ENDTOT
public static final int ENDTOT
- 另请参见:
- Constant Field Values
-
ENDSIZ
public static final int ENDSIZ
- 另请参见:
- Constant Field Values
-
ENDOFF
public static final int ENDOFF
- 另请参见:
- Constant Field Values
-
ENDCOM
public static final int ENDCOM
- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
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文件条目,并将流定位到条目数据的开头。 关闭当前条目,如果仍然有效。 如果没有为条目指定压缩方法,将使用默认压缩方法,如果条目没有设置修改时间,将使用当前时间。- 参数
-
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错误 - 另请参见:
-
FilterOutputStream.write(int)
-
finish
public void finish() throws IOException
完成编写ZIP输出流的内容,而不关闭底层流。 在连续使用多个过滤器到相同的输出流时使用此方法。- 重写:
-
finish
在DeflaterOutputStream
- 异常
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I / O异常
-
close
public void close() throws IOException
关闭ZIP输出流以及正在过滤的流。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- 重写:
-
close
在DeflaterOutputStream
- 异常
-
ZipException
- 如果发生ZIP文件错误 -
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterOutputStream.flush()
,FilterOutputStream.out
-
-