Module java.base
Package java.util.zip

Class ZipEntry

java.lang.Object
java.util.zip.ZipEntry
所有已实现的接口:
Cloneable
直接已知的子类:
JarEntry

public class ZipEntry extends Object implements Cloneable
该类用于表示ZIP文件条目。
自1.1版本起:
1.1
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static 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
    压缩(缩小)条目的压缩方法。
    static final int
    中央目录(END)头部ZIP文件注释长度字段偏移量。
    static final int
    中央目录(END)头部字节大小(包括签名)。
    static final int
    中央目录(END)头部第一个CEN头部字段偏移量。
    static final long
    中央目录(END)头部签名。
    static final int
    中央目录(END)头部字节大小字段偏移量。
    static final int
    中央目录(END)头部此磁盘上的条目数字段偏移量。
    static final int
    中央目录(END)头部总条目数字段偏移量。
    static final int
    额外本地(EXT)头部未压缩文件crc-32值字段偏移量。
    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
    未压缩条目的压缩方法。
    static final int
    使用指定名称创建新的ZIP条目。
  • Constructor Summary

    Constructors
    Constructor
    Description
    ZipEntry(String name)
    使用指定ZIP条目中的字段创建新的ZIP条目。
    返回此条目的副本。
  • Method Summary

    Modifier and Type
    Method
    Description
    clone()
    返回条目的注释字符串。
    返回压缩条目数据的大小。
    long
    返回未压缩条目数据的CRC-32校验和。
    long
    getCrc()
    返回条目的创建时间。
    返回条目的额外字段数据。
    byte[]
    返回条目的最后访问时间。
    返回条目的最后修改时间。
    返回条目的压缩方法。
    int
    返回条目的名称。
    返回条目数据的未压缩大小。
    long
    返回条目的最后修改时间。
    long
    返回条目的本地日期时间的最后修改时间。
    返回此条目的哈希码值。
    int
    如果这是一个目录条目,则返回true。
    boolean
    为条目设置可选的注释字符串。
    void
    setComment(String comment)
    设置压缩条目数据的大小。
    void
    setCompressedSize(long csize)
    设置未压缩条目数据的CRC-32校验和。
    void
    setCrc(long crc)
    设置条目的创建时间。
    为条目设置可选的额外字段数据。
    void
    setExtra(byte[] extra)
    设置条目的最后访问时间。
    设置条目的最后修改时间。
    设置条目的压缩方法。
    void
    setMethod(int method)
    设置条目数据的未压缩大小。
    void
    setSize(long size)
    设置条目的最后修改时间。
    void
    setTime(long time)
    设置条目的本地日期时间的最后修改时间。
    void
    返回ZIP条目的字符串表示形式。
    未压缩条目的压缩方法。

    Methods declared in class java.lang.Object

    equals, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • STORED

      public static final int STORED
      Compression method for uncompressed entries.
      参见:
    • DEFLATED

      public static final int DEFLATED
      压缩(缩小)条目的压缩方法。
      参见:
    • LOCSIG

      static final long LOCSIG
      本地文件(LOC)头部签名。
      参见:
    • EXTSIG

      static final long EXTSIG
      额外本地(EXT)头部签名。
      参见:
    • CENSIG

      static final long CENSIG
      中央目录(CEN)头部签名。
      参见:
    • ENDSIG

      static final long ENDSIG
      中央目录(END)头部签名。
      参见:
    • 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

    • ZipEntry

      public ZipEntry(String name)
      使用指定名称创建新的zip条目。
      参数:
      name - 条目名称
      抛出:
      NullPointerException - 如果条目名称为null
      IllegalArgumentException - 如果条目名称超过0xFFFF字节
    • ZipEntry

      public ZipEntry(ZipEntry e)
      使用从指定zip条目中获取的字段创建新的zip条目。
      参数:
      e - 一个zip Entry对象
      抛出:
      NullPointerException - 如果条目对象为null
  • Method Details

    • getName

      public String getName()
      返回条目的名称。
      返回:
      条目的名称
    • setTime

      public void setTime(long time)
      设置条目的最后修改时间。

      如果将条目输出到ZIP文件或ZIP文件格式化输出流,则此方法设置的最后修改时间将存储到zip文件条目的日期和时间字段中,并以标准MS-DOS日期和时间格式编码。使用默认时区将时期时间转换为MS-DOS日期和时间。

      参数:
      time - 条目的最后修改时间,以自纪元以来的毫秒数表示
      参见:
    • getTime

      public long getTime()
      返回条目的最后修改时间。

      如果从ZIP文件或ZIP文件格式化输入流中读取条目,则这是zip文件条目的日期和时间字段中的最后修改时间。使用默认时区将标准MS-DOS格式化的日期和时间转换为自纪元以来的时间。

      返回:
      条目的最后修改时间,以自纪元以来的毫秒数表示,如果未指定则为-1
      参见:
    • setTimeLocal

      public void setTimeLocal(LocalDateTime time)
      设置条目的本地日期时间的最后修改时间。

      如果将条目输出到ZIP文件或ZIP文件格式化输出流,则此方法设置的最后修改时间将存储到zip文件条目的日期和时间字段中,并以标准MS-DOS日期和时间格式编码。如果设置的日期时间超出标准MS-DOS日期和时间格式的范围,则时间也将存储到zip文件条目的可选额外数据中的扩展时间戳字段中,以UTC时间表示。使用系统默认时区将本地日期时间转换为UTC时间。

      LocalDateTime使用纳秒精度,而此类使用毫秒精度。转换将截断任何多余的精度信息,就好像纳秒数按一百万除以整数一样。

      参数:
      time - 条目的本地日期时间的最后修改时间
      自:
      9
      参见:
    • getTimeLocal

      public LocalDateTime getTimeLocal()
      返回本地日期时间中条目的最后修改时间。

      如果从ZIP文件或ZIP文件格式化的输入流中读取条目,则如果扩展时间戳字段存在,则这是来自zip文件条目的可选额外数据的最后修改时间。否则,最后修改时间将从条目的标准MS-DOS格式化的日期和时间字段中读取。

      使用系统默认时区将UTC时间转换为本地日期时间。

      返回:
      条目的最后修改时间,以本地日期时间表示
      自:
      9
      另请参见:
    • setLastModifiedTime

      public ZipEntry setLastModifiedTime(FileTime time)
      设置条目的最后修改时间。

      当输出到ZIP文件或ZIP文件格式化的输出流时,此方法设置的最后修改时间将存储到zip文件条目的日期和时间字段中(以标准MS-DOS日期和时间格式),并且以UTC时间存储到可选额外数据中的扩展时间戳字段中。

      参数:
      time - 条目的最后修改时间
      返回:
      此zip条目
      抛出:
      NullPointerException - 如果time为null
      自:
      1.8
      另请参见:
    • getLastModifiedTime

      public FileTime getLastModifiedTime()
      返回条目的最后修改时间。

      如果从ZIP文件或ZIP文件格式化的输入流中读取条目,则如果扩展时间戳字段存在,则这是来自zip文件条目的可选额外数据的最后修改时间。否则,最后修改时间将从条目的日期和时间字段中读取,使用默认时区将标准MS-DOS格式化的日期和时间转换为时代时间。

      返回:
      条目的最后修改时间,如果未指定则为null
      自:
      1.8
      另请参见:
    • setLastAccessTime

      public ZipEntry setLastAccessTime(FileTime time)
      设置条目的最后访问时间。

      如果设置,最后访问时间将存储到条目的可选额外数据中的扩展时间戳字段中,当输出到ZIP文件或ZIP文件格式化的流时。

      参数:
      time - 条目的最后访问时间
      返回:
      此zip条目
      抛出:
      NullPointerException - 如果time为null
      自:
      1.8
      另请参见:
    • getLastAccessTime

      public FileTime getLastAccessTime()
      返回条目的最后访问时间。

      最后访问时间来自从ZIP文件或ZIP文件格式化的流中读取时条目的可选额外数据中的扩展时间戳字段。

      返回:
      条目的最后访问时间,如果未指定则为null
      自:
      1.8
      另请参见:
    • setCreationTime

      public ZipEntry setCreationTime(FileTime time)
      设置条目的创建时间。

      如果设置,创建时间将存储到条目的可选额外数据中的扩展时间戳字段中,当输出到ZIP文件或ZIP文件格式化的流时。

      参数:
      time - 条目的创建时间
      返回:
      此zip条目
      抛出:
      NullPointerException - 如果time为null
      自:
      1.8
      另请参见:
    • getCreationTime

      public FileTime getCreationTime()
      返回条目的创建时间。

      创建时间来自从ZIP文件或ZIP文件格式化的流中读取时条目的可选额外数据中的扩展时间戳字段。

      返回:
      条目的创建时间,如果未指定则为null
      自:
      1.8
      另请参见:
    • setSize

      public void setSize(long size)
      设置条目数据的未压缩大小。
      参数:
      size - 字节中的未压缩大小
      抛出:
      IllegalArgumentException - 如果指定的大小小于0,在不支持ZIP64格式时大于0xFFFFFFFF,或在支持ZIP64时小于0
      另请参见:
    • getSize

      public long getSize()
      返回条目数据的未压缩大小。
      返回:
      条目数据的未压缩大小,如果未知则为-1
      另请参见:
    • getCompressedSize

      public long getCompressedSize()
      返回压缩条目数据的大小。

      对于存储的条目,压缩大小将与条目的未压缩大小相同。

      返回:
      压缩条目数据的大小,如果未知则为-1
      另请参见:
    • setCompressedSize

      public void setCompressedSize(long csize)
      设置压缩条目数据的大小。
      参数:
      csize - 要设置的压缩大小
      另请参见:
    • setCrc

      public void setCrc(long crc)
      设置未压缩条目数据的CRC-32校验和。
      参数:
      crc - CRC-32值
      抛出:
      IllegalArgumentException - 如果指定的CRC-32值小于0或大于0xFFFFFFFF
      另请参见:
    • getCrc

      public long getCrc()
      返回未压缩条目数据的CRC-32校验和。
      返回:
      未压缩条目数据的CRC-32校验和,如果未知则为-1
      另请参见:
    • setMethod

      public void setMethod(int method)
      设置条目的压缩方法。
      参数:
      method - 压缩方法,可以是STORED或DEFLATED
      抛出:
      IllegalArgumentException - 如果指定的压缩方法无效
      另请参见:
    • getMethod

      public int getMethod()
      返回条目的压缩方法。
      返回:
      条目的压缩方法,如果未指定则为-1
      另请参见:
    • setExtra

      public void setExtra(byte[] extra)
      设置条目的可选额外字段数据。

      调用此方法可能会更改此条目的最后修改时间、最后访问时间和创建时间,如果extra字段数据包括可扩展时间戳字段,如Info-ZIP Application Note 970311中指定的NTFS标签0x0001Info-ZIP Extended Timestamp

      参数:
      extra - 额外字段数据字节
      抛出:
      IllegalArgumentException - 如果指定的额外字段数据的长度大于0xFFFF字节
      另请参见:
    • getExtra

      public byte[] getExtra()
      返回条目的额外字段数据。
      返回:
      条目的额外字段数据,如果没有则为null
      另请参见:
    • setComment

      public void setComment(String comment)
      设置条目的可选注释字符串。

      ZIP条目注释的最大长度为0xffff。如果编码后指定的注释字符串的长度大于0xFFFF字节,则只有前0xFFFF字节输出到ZIP文件条目。

      参数:
      comment - 注释字符串
      另请参见:
    • getComment

      public String getComment()
      返回条目的注释字符串。
      返回:
      条目的注释字符串,如果没有则为null
      另请参见:
    • isDirectory

      public boolean isDirectory()
      如果这是一个目录条目,则返回true。目录条目被定义为名称以'/'结尾的条目。
      返回:
      如果这是一个目录条目,则返回true
    • toString

      public String toString()
      返回ZIP条目的字符串表示形式。
      覆盖:
      toString 在类 Object
      返回:
      对象的字符串表示形式。
    • hashCode

      public int hashCode()
      返回此条目的哈希码值。
      覆盖:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      参见:
    • clone

      public Object clone()
      返回此条目的副本。
      覆盖:
      clone 在类 Object
      返回:
      此实例的克隆。
      参见: