java.lang.Object
java.util.zip.ZipFile
- 所有已实现的接口:
-
Closeable
,AutoCloseable
- 直接已知的子类:
-
JarFile
该类用于从zip文件中读取条目。
除非另有说明,在此类中向构造函数或方法传递null
参数将导致抛出NullPointerException
。
- API注释:
-
要释放此
ZipFile
使用的资源,应显式调用close()
方法或使用try-with-resources。子类负责清理子类获取的资源。覆盖Object.finalize()
以执行清理的子类应修改为使用替代清理机制,如Cleaner
并删除覆盖的finalize
方法。 - 自版本:
- 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
中央目录(CEN)头部zip文件注释长度字段偏移量。static final int
中央目录(CEN)头部字节大小(包括签名)。static final int
中央目录(CEN)头部第一个CEN头部字段偏移量。static final long
中央目录(CEN)头部签名。static final int
中央目录(CEN)头部此磁盘上的条目数字段偏移量。static final int
中央目录(CEN)头部总条目数字段偏移量。static final int
额外本地(EXT)头部未压缩文件crc-32值字段偏移量。static final int
额外本地(EXT)头部字节大小(包括签名)。static final int
额外本地(EXT)头部未压缩大小字段偏移量。static final int
额外本地(EXT)头部签名。static final long
额外本地(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 int
本地文件(LOC)头部签名。static final long
本地文件(LOC)头部压缩大小字段偏移量。static final int
本地文件(LOC)头部修改时间字段偏移量。static final int
本地文件(LOC)头部需要提取的版本字段偏移量。static final int
用于打开zip文件并标记为删除的模式标志。static final int
用于打开zip文件以供读取并标记为删除的模式标志。static final int
用于打开zip文件以供读取的模式标志。 -
Constructor Summary
ConstructorDescription给定指定的File对象,打开一个ZIP文件以供读取。以指定的模式从指定的File
对象打开一个新的ZipFile
以供读取。以指定的模式从指定的File
对象打开一个新的ZipFile
以供读取。给定指定的File对象,打开一个ZIP文件以供读取。打开一个zip文件以供读取。打开一个zip文件以供读取。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
关闭ZIP文件。Enumeration
<? extends ZipEntry> entries()
返回ZIP文件条目的枚举。返回zip文件注释,如果没有则返回null。返回指定名称的zip文件条目,如果未找到则返回null。getInputStream
(ZipEntry entry) 返回用于读取指定zip文件条目内容的输入流。getName()
返回ZIP文件的路径名。int
size()
返回ZIP文件中的条目数。stream()
返回ZIP文件条目的有序Stream
。
-
Field Details
-
OPEN_READ
public static final int OPEN_READ用于打开zip文件以供读取的模式标志。- 参见:
-
OPEN_DELETE
public static final int OPEN_DELETE用于打开zip文件并标记为删除的模式标志。文件将在打开和关闭之间的某个时刻被删除,但其内容将保持通过ZipFile
对象访问,直到调用close方法或虚拟机退出。- 参见:
-
LOCSIG
static final long LOCSIG本地文件(LOC)头部签名。- 参见:
-
EXTSIG
static final long EXTSIG额外本地(EXT)头部签名。- 参见:
-
CENSIG
static final long CENSIG中央目录(CEN)头部签名。- 参见:
-
ENDSIG
static final long ENDSIG中央目录(CEN)头部结束签名。- 参见:
-
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中央目录(END)头第一个CEN头的偏移量字段偏移量。- 参见:
-
ENDCOM
static final int ENDCOM中央目录(END)头zip文件注释长度字段偏移量。- 参见:
-
-
Constructor Details
-
ZipFile
打开一个zip文件以供读取。首先,如果存在安全管理器,则调用其
checkRead
方法,参数为name
,以确保允许读取。使用UTF-8
charset
来解码条目名称和注释。- 参数:
-
name
- zip文件的名称 - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对文件进行读取访问。 - 参见:
-
ZipFile
打开一个新的ZipFile
以从指定的File
对象中以指定模式进行读取。模式参数必须是OPEN_READ
或OPEN_READ | OPEN_DELETE
之一。首先,如果存在安全管理器,则调用其
checkRead
方法,参数为name
,以确保允许读取。使用UTF-8
charset
来解码条目名称和注释。- 参数:
-
file
- 要打开以进行读取的ZIP文件 -
mode
- 要打开文件的模式 - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对文件进行读取访问,或者当设置了OPEN_DELETE
标志时,其checkDelete
方法不允许删除文件。 -
IllegalArgumentException
- 如果mode
参数无效 - 自:
- 1.3
- 参见:
-
ZipFile
打开给定File对象的ZIP文件以供读取。使用UTF-8
charset
来解码条目名称和注释。- 参数:
-
file
- 要打开以进行读取的ZIP文件 - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误
-
ZipFile
打开一个新的ZipFile
以从指定的File
对象中以指定模式进行读取。模式参数必须是OPEN_READ
或OPEN_READ | OPEN_DELETE
之一。首先,如果存在安全管理器,则调用其
checkRead
方法,参数为name
,以确保允许读取。- 参数:
-
file
- 要打开以进行读取的ZIP文件 -
mode
- 要打开文件的模式 -
charset
- 用于解码未使用UTF-8编码的ZIP条目名称和注释的字符集(由条目的通用目的标志指示)。 - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许读取文件,或其checkDelete
方法在设置OPEN_DELETE
标志时不允许删除文件 -
IllegalArgumentException
- 如果mode
参数无效 - 自从:
- 1.7
- 参见:
-
ZipFile
打开一个ZIP文件以进行读取。首先,如果存在安全管理器,则将使用
name
参数调用其checkRead
方法,以确保允许读取。- 参数:
-
name
- ZIP文件的名称 -
charset
- 用于解码未使用UTF-8编码的ZIP条目名称和注释的字符集(由条目的通用目的标志指示)。 - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许读取文件 - 自从:
- 1.7
- 参见:
-
ZipFile
给定指定的File对象,打开一个ZIP文件以进行读取。- 参数:
-
file
- 要打开以进行读取的ZIP文件 -
charset
- 用于解码ZIP条目名称和注释的字符集(如果ZIP条目的通用目的位标志设置了语言编码位,则忽略) - 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 - 自从:
- 1.7
-
-
Method Details
-
getComment
返回ZIP文件的注释,如果没有则返回null。- 返回:
- ZIP文件的注释字符串,如果没有则返回null
- 抛出:
-
IllegalStateException
- 如果ZIP文件已关闭 - 自从:
- 1.7
-
getEntry
返回指定名称的ZIP文件条目,如果未找到则返回null。- 参数:
-
name
- 条目的名称 - 返回:
- ZIP文件条目,如果未找到则返回null
- 抛出:
-
IllegalStateException
- 如果ZIP文件已关闭
-
getInputStream
返回用于读取指定ZIP文件条目内容的输入流。关闭此ZIP文件将关闭此方法调用返回的所有输入流。
- API注释:
-
此方法返回的
InputStream
可以包装一个
,其InflaterInputStream
方法可以修改输出缓冲区的任何元素。read(byte[], int, int)
- 参数:
-
entry
- ZIP文件条目 - 返回:
- 用于读取指定ZIP文件条目内容的输入流,如果ZIP文件中不存在该条目,则返回null。
- 抛出:
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I/O错误 -
IllegalStateException
- 如果ZIP文件已关闭
-
getName
返回ZIP文件的路径名。- 返回:
- ZIP文件的路径名
-
entries
返回ZIP文件条目的枚举。- 返回:
- ZIP文件条目的枚举
- 抛出:
-
IllegalStateException
- 如果ZIP文件已关闭
-
stream
返回ZIP文件条目的有序Stream
。条目在ZIP文件的中央目录中出现的顺序中出现在Stream
中。- 返回:
-
ZIP文件中条目的有序
Stream
- 抛出:
-
IllegalStateException
- 如果ZIP文件已关闭 - 自从:
- 1.8
-
size
public int size()返回ZIP文件中的条目数。- 返回:
- ZIP文件中的条目数
- 抛出:
-
IllegalStateException
- 如果ZIP文件已关闭
-
close
关闭ZIP文件。关闭此ZIP文件将关闭先前通过调用
getInputStream
方法返回的所有输入流。- 指定者:
-
close
在接口AutoCloseable
中 - 指定者:
-
close
在接口Closeable
中 - 抛出:
-
IOException
- 如果发生I/O错误
-