Module  java.base
软件包  java.util.zip

Class ZipFile

  • All Implemented Interfaces:
    CloseableAutoCloseable
    已知直接子类:
    JarFile


    public class ZipFile
    extends Object
    implements Closeable
    此类用于从zip文件读取条目。

    除非另有说明,否则将null参数传递给null中的构造函数或方法将导致抛出NullPointerException

    从以下版本开始:
    1.1
    • 构造方法详细信息

      • ZipFile

        public ZipFile​(String name)
                throws IOException
        打开一个zip文件进行阅读。

        首先,如果有一个安全管理器,它的checkRead方法是以name参数作为参数来调用,以确保读取被允许。

        UTF-8 charset用于解码条目名称和注释。

        参数
        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_READOPEN_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_READOPEN_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文件的路径名称
      • stream

        public Stream<? extends ZipEntry> stream​()
        在ZIP文件条目上返回有序的Stream 条目按照它们出现在ZIP文件的中央目录中的顺序出现在Stream中。
        结果
        该ZIP文件中的条目已订购 Stream
        异常
        IllegalStateException - 如果zip文件已关闭
        从以下版本开始:
        1.8
      • size

        public int size​()
        返回ZIP文件中的条目数。
        结果
        ZIP文件中的条目数
        异常
        IllegalStateException - 如果zip文件已关闭
      • finalize

        @Deprecated(since="9")
        protected void finalize​()
                         throws IOException
        已过时。 finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制,并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 有关迁移选项的更多信息,请参阅Object.finalize()的规范。
        确保在不再有引用该ZipFile对象时,系统资源被释放。

        由于GC调用此方法的时间尚未确定,因此强烈建议应用程序在完成ZipFile访问后立即调用close方法。 这将阻止系统资源保持不确定的时间长短。

        重写:
        finalizeObject
        异常
        IOException - 如果发生I / O错误
        另请参见:
        close()