- java.lang.Object
-
- java.util.zip.ZipFile
-
- All Implemented Interfaces:
-
Closeable
,AutoCloseable
- 已知直接子类:
-
JarFile
public class ZipFile extends Object implements Closeable
此类用于从zip文件读取条目。除非另有说明,否则将
null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。- 从以下版本开始:
- 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
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文件进行阅读。
-
构造方法摘要
构造方法 Constructor 描述 ZipFile(File file)
打开一个ZIP文件,读取指定的File对象。ZipFile(File file, int mode)
打开一个新的ZipFile
以指定的方式读取指定的File
对象。ZipFile(File file, int mode, Charset charset)
打开一个新的ZipFile
以指定的方式读取指定的File
对象。ZipFile(File file, Charset charset)
打开一个ZIP文件,读取指定的File对象。ZipFile(String name)
打开一个zip文件进行阅读。ZipFile(String name, Charset charset)
打开一个zip文件进行阅读。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 void
close()
关闭ZIP文件。Enumeration<? extends ZipEntry>
entries()
返回ZIP文件条目的枚举。protected void
finalize()
已过时。finalize
方法已被弃用。 为了执行清理而覆盖finalize
子类应该修改为使用替代的清理机制,并删除覆盖的finalize
方法。 当覆盖finalize
方法时,其实现必须明确确保按照super.finalize()
中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.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文件进行阅读。- 另请参见:
- Constant Field Values
-
OPEN_DELETE
public static final int OPEN_DELETE
模式标志打开一个zip文件并标记为删除。 该文件将在打开时刻和关闭时间之间被删除,但其内容将仍然可以通过ZipFile
对象访问,直到关闭方法被调用或虚拟机退出。- 另请参见:
- 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
-
-
构造方法详细信息
-
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
打开一个ZIP文件,读取指定的File对象。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
参数作为参数,以确保读取被允许。- 参数
-
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
打开一个ZIP文件,读取指定的File对象。- 参数
-
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") protected void finalize() throws IOException
已过时。finalize
方法已被弃用。 为了执行清理,覆盖finalize
子类应被修改为使用替代的清理机制,并删除覆盖的finalize
方法。 当覆盖finalize
方法时,其实现必须明确确保按照super.finalize()
中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()
的规范。确保在不再有引用该ZipFile对象时,系统资源被释放。由于GC调用此方法的时间尚未确定,因此强烈建议应用程序在完成
ZipFile
访问后立即调用close
方法。 这将阻止系统资源保持不确定的时间长短。- 重写:
-
finalize
在Object
- 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
close()
-
-