- java.lang.Object
-
- java.util.zip.ZipFile
-
- 实现的所有接口
-
Closeable
,AutoCloseable
- 已知直接子类:
-
JarFile
public class ZipFileextends Objectimplements Closeable
该类用于从zip文件中读取条目。除非另有说明,否则将
null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。- API Note:
- 要释放此
ZipFile
使用的资源,应显式调用close()
方法或使用try-with-resources调用。 子类负责清理子类获取的资源。 应修改覆盖finalize()
以执行清理的子类,以使用替代清理机制(如Cleaner
)并删除重写finalize
方法。 - 实现要求:
- 如果这个
ZipFile
已经子类和close
方法已被重写,该close
方法将被终结时调用ZipFile
不可达。 但是子类不应该依赖于这个具体的实现; 最终确定不可靠,并且不推荐使用finalize
方法。 - 从以下版本开始:
- 1.1
-
-
字段汇总
字段 变量和类型 字段 描述 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
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
OPEN_DELETE
模式标志打开一个zip文件并标记为删除。static int
OPEN_READ
模式标志打开一个zip文件进行阅读。
-
构造方法摘要
构造方法 构造器 描述 ZipFile(File file)
在给定指定的File对象的情况下打开ZIP文件以进行读取。ZipFile(File file, int mode)
打开新的ZipFile
以在指定模式下从指定的File
对象读取。ZipFile(File file, int mode, Charset charset)
打开一个新的ZipFile
以在指定模式下从指定的File
对象读取。ZipFile(File file, Charset charset)
在给定指定的File对象的情况下打开ZIP文件以进行读取。ZipFile(String name)
打开一个zip文件进行阅读。ZipFile(String name, Charset charset)
打开一个zip文件进行阅读。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 void
close()
关闭ZIP文件。Enumeration<? extends ZipEntry>
entries()
返回ZIP文件条目的枚举。protected void
finalize()
不推荐使用,要删除:此API元素将在以后的版本中删除。finalize
方法已被弃用,将被删除。String
getComment()
返回zip文件注释,如果没有,则返回null。ZipEntry
getEntry(String name)
返回指定名称的zip文件条目,如果未找到,则返回null。InputStream
getInputStream(ZipEntry entry)
返回用于读取指定zip文件条目内容的输入流。String
getName()
返回ZIP文件的路径名。int
size()
返回ZIP文件中的条目数。Stream<? extends ZipEntry>
stream()
返回ZIP文件条目的有序Stream
。
-
-
-
字段详细信息
-
OPEN_READ
public static final int OPEN_READ
模式标志打开一个zip文件进行阅读。- 另请参见:
- 常数字段值
-
OPEN_DELETE
public static final int OPEN_DELETE
模式标志打开一个zip文件并标记为删除。 该文件将在打开时刻和关闭时刻之间的某个时间删除,但其内容仍可通过ZipFile
对象访问,直到调用close方法或虚拟机退出。- 另请参见:
- 常数字段值
-
LOCSIG
public static final long LOCSIG
- 另请参见:
- 常数字段值
-
EXTSIG
public static final long EXTSIG
- 另请参见:
- 常数字段值
-
CENSIG
public static final long CENSIG
- 另请参见:
- 常数字段值
-
ENDSIG
public static final long ENDSIG
- 另请参见:
- 常数字段值
-
LOCHDR
public static final int LOCHDR
- 另请参见:
- 常数字段值
-
EXTHDR
public static final int EXTHDR
- 另请参见:
- 常数字段值
-
CENHDR
public static final int CENHDR
- 另请参见:
- 常数字段值
-
ENDHDR
public static final int ENDHDR
- 另请参见:
- 常数字段值
-
LOCVER
public static final int LOCVER
- 另请参见:
- 常数字段值
-
LOCFLG
public static final int LOCFLG
- 另请参见:
- 常数字段值
-
LOCHOW
public static final int LOCHOW
- 另请参见:
- 常数字段值
-
LOCTIM
public static final int LOCTIM
- 另请参见:
- 常数字段值
-
LOCCRC
public static final int LOCCRC
- 另请参见:
- 常数字段值
-
LOCSIZ
public static final int LOCSIZ
- 另请参见:
- 常数字段值
-
LOCLEN
public static final int LOCLEN
- 另请参见:
- 常数字段值
-
LOCNAM
public static final int LOCNAM
- 另请参见:
- 常数字段值
-
LOCEXT
public static final int LOCEXT
- 另请参见:
- 常数字段值
-
EXTCRC
public static final int EXTCRC
- 另请参见:
- 常数字段值
-
EXTSIZ
public static final int EXTSIZ
- 另请参见:
- 常数字段值
-
EXTLEN
public static final int EXTLEN
- 另请参见:
- 常数字段值
-
CENVEM
public static final int CENVEM
- 另请参见:
- 常数字段值
-
CENVER
public static final int CENVER
- 另请参见:
- 常数字段值
-
CENFLG
public static final int CENFLG
- 另请参见:
- 常数字段值
-
CENHOW
public static final int CENHOW
- 另请参见:
- 常数字段值
-
CENTIM
public static final int CENTIM
- 另请参见:
- 常数字段值
-
CENCRC
public static final int CENCRC
- 另请参见:
- 常数字段值
-
CENSIZ
public static final int CENSIZ
- 另请参见:
- 常数字段值
-
CENLEN
public static final int CENLEN
- 另请参见:
- 常数字段值
-
CENNAM
public static final int CENNAM
- 另请参见:
- 常数字段值
-
CENEXT
public static final int CENEXT
- 另请参见:
- 常数字段值
-
CENCOM
public static final int CENCOM
- 另请参见:
- 常数字段值
-
CENDSK
public static final int CENDSK
- 另请参见:
- 常数字段值
-
CENATT
public static final int CENATT
- 另请参见:
- 常数字段值
-
CENATX
public static final int CENATX
- 另请参见:
- 常数字段值
-
CENOFF
public static final int CENOFF
- 另请参见:
- 常数字段值
-
ENDSUB
public static final int ENDSUB
- 另请参见:
- 常数字段值
-
ENDTOT
public static final int ENDTOT
- 另请参见:
- 常数字段值
-
ENDSIZ
public static final int ENDSIZ
- 另请参见:
- 常数字段值
-
ENDOFF
public static final int ENDOFF
- 另请参见:
- 常数字段值
-
ENDCOM
public static final int ENDCOM
- 另请参见:
- 常数字段值
-
-
构造方法详细信息
-
ZipFile
public ZipFile(String name) throws IOException
- 参数
-
name
- zip文件的名称 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对文件进行读访问。 - 另请参见:
-
SecurityManager.checkRead(java.lang.String)
-
ZipFile
public ZipFile(File file, int mode) throws IOException
打开新的ZipFile
以在指定模式下从指定的File
对象读取。 mode参数必须是OPEN_READ
或OPEN_READ | OPEN_DELETE
。首先,如果有安全管理器,则调用其
checkRead
方法,并将name
参数作为其参数,以确保允许读取。UTF-8
charset
用于解码条目名称和注释- 参数
-
file
- 要打开以供阅读的ZIP文件 -
mode
- 要打开文件的模式 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对该文件进行读访问,或者其checkDelete
方法在设置OPEN_DELETE
标志时不允许删除该文件。 -
IllegalArgumentException
- 如果mode
参数无效 - 从以下版本开始:
- 1.3
- 另请参见:
-
SecurityManager.checkRead(java.lang.String)
-
ZipFile
public ZipFile(File file) throws ZipException, IOException
在给定指定的File对象的情况下打开ZIP文件以进行读取。UTF-8
charset
用于解码条目名称和注释。- 参数
-
file
- 要打开以供阅读的ZIP文件 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误
-
ZipFile
public ZipFile(File file, int mode, Charset charset) throws IOException
打开新的ZipFile
以在指定模式下从指定的File
对象读取。 mode参数必须是OPEN_READ
或OPEN_READ | OPEN_DELETE
。首先,如果有安全管理器,
checkRead
name
参数作为参数调用其checkRead
方法,以确保允许读取。- 参数
-
file
- 要打开以供阅读的ZIP文件 -
mode
- 要打开文件的模式 -
charset
- 用于解码未使用UTF-8编码编码的ZIP条目名称和注释的charset (由条目的通用标志指示)。 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对文件进行读访问,或者其checkDelete
方法不允许在设置OPEN_DELETE
标志时删除该文件 -
IllegalArgumentException
- 如果mode
参数无效 - 从以下版本开始:
- 1.7
- 另请参见:
-
SecurityManager.checkRead(java.lang.String)
-
ZipFile
public ZipFile(String name, Charset charset) throws IOException
打开一个zip文件进行阅读。首先,如果有安全管理器,则调用其
checkRead
方法,并将name
参数作为其参数,以确保允许读取。- 参数
-
name
- zip文件的名称 -
charset
- 用于解码未使用UTF-8编码编码的ZIP条目名称和注释的charset (由条目的通用标志指示)。 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 -
SecurityException
- 如果存在安全管理器且其checkRead
方法不允许对文件进行读访问 - 从以下版本开始:
- 1.7
- 另请参见:
-
SecurityManager.checkRead(java.lang.String)
-
ZipFile
public ZipFile(File file, Charset charset) throws IOException
在给定指定的File对象的情况下打开ZIP文件以进行读取。- 参数
-
file
- 要打开以供阅读的ZIP文件 -
charset
-该charset被用来ZIP条目名称和注释(忽略,如果解码language encoding bit ZIP条目的通用位标志的设置)。 - 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 - 从以下版本开始:
- 1.7
-
-
方法详细信息
-
getComment
public String getComment()
返回zip文件注释,如果没有,则返回null。- 结果
- zip文件的注释字符串,如果没有则为null
- 异常
-
IllegalStateException
- 如果zip文件已关闭 - 从以下版本开始:
- 1.7
-
getEntry
public ZipEntry getEntry(String name)
返回指定名称的zip文件条目,如果未找到,则返回null。- 参数
-
name
- 条目的名称 - 结果
- zip文件条目,如果未找到则为null
- 异常
-
IllegalStateException
- 如果zip文件已关闭
-
getInputStream
public InputStream getInputStream(ZipEntry entry) throws IOException
返回用于读取指定zip文件条目内容的输入流。关闭此ZIP文件将依次关闭此方法调用返回的所有输入流。
- 参数
-
entry
- zip文件条目 - 结果
- 用于读取指定zip文件条目内容的输入流。
- 异常
-
ZipException
- 如果发生ZIP格式错误 -
IOException
- 如果发生I / O错误 -
IllegalStateException
- 如果zip文件已关闭
-
getName
public String getName()
返回ZIP文件的路径名。- 结果
- ZIP文件的路径名
-
entries
public Enumeration<? extends ZipEntry> entries()
返回ZIP文件条目的枚举。- 结果
- ZIP文件条目的枚举
- 异常
-
IllegalStateException
- 如果zip文件已关闭
-
stream
public Stream<? extends ZipEntry> stream()
在ZIP文件条目上返回有序的Stream
。 条目按照它们出现在ZIP文件中心目录中的顺序显示在Stream
中。- 结果
- 此ZIP文件中有条目的
Stream
条目 - 异常
-
IllegalStateException
- 如果zip文件已关闭 - 从以下版本开始:
- 1.8
-
size
public int size()
返回ZIP文件中的条目数。- 结果
- ZIP文件中的条目数
- 异常
-
IllegalStateException
- 如果zip文件已关闭
-
close
public void close() throws IOException
关闭ZIP文件。关闭此ZIP文件将关闭之前通过
getInputStream
方法调用返回的所有输入流。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
接口Closeable
- 异常
-
IOException
- 如果发生I / O错误
-
finalize
@Deprecated(since="9", forRemoval=true)protected void finalize() throws IOException
Deprecated, for removal: This API element is subject to removal in a future version.Thefinalize
method has been deprecated and will be removed. It is implemented as a no-op. Subclasses that overridefinalize
in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overridingfinalize
method. The recommended cleanup for ZipFile object is to explicitly invokeclose
method when it is no longer in use, or use try-with-resources. If theclose
is not invoked explicitly the resources held by this object will be released when the instance becomes unreachable.确保在没有对此ZipFile对象的引用时释放此ZipFile对象所拥有的系统资源。- 重写:
-
finalize
类Object
- 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
WeakReference
,PhantomReference
-
-