Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解压缩的实现比较容易,一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的数据项存储压缩数据。实现zip数据压缩三个主要Java类是ZipEntry、ZipInputStream和ZipOutputStream。
  ·类ZipEntry

public ZipEntry(String name); 
     
name为指定的数据项名。 
  ·类ZipOutputStream 
  ZipOutputStream实现了zip压缩文件的写输出流,支持压缩和非压缩entry。下面是它的几个函数: 
  public ZipOutputStream(OutputStream out); 
  ∥利用输出流out构造一个ZIP输出流。 
  public void setMethod(int method); 
  ∥设置entry压缩方法,缺省值为DEFLATED。 
  public void putNextEntry(ZipEntry newe); 
  ∥如果当前的entry存在且处于激活状态时,关闭它,在zip文件中写入新的entry-new,并将数据流定位于entry数据项的起始位置,压缩方法为setMethod指定的方法。 
  ·类ZipInputStream 
  ZipInputStream实现了zip压缩文件的读输入流,支持压缩和非压缩entry。下面是它的几个函数: 
  public ZipInputStream(InputStream in); 
  ∥利用输入流in构造一个ZIP输出流。 
  public ZipEntry getNextEntry(); 
  ∥返回ZIP文件中的下一个entry,并将输出流定位在此entry数据项的起始位置。 
  public void closeEntry(); 
  ∥关闭当前的zip entry,并将数据流定位于下一个entry的起始位置。

对于要加入压缩档的每一个文件,都必须调用putNextEntry(),并将其传递给一个ZipEntry对象。ZipEntry对象包含了一个功能全面的接口,使用它可以获得和设置Zip文件内那个特定的Entry(入口)上能够接受的所有数据:名字、压缩后和压缩前的长度、日期、CRC校验和、额外字段的数据、注释、压缩方法,以及它是否为一个目录入口等。

    为解压文件,ZipInputStream提供一个getNextEntry()方法,能返回一个ZipEntry。也可以用ZipFile对象读取文件,该对象有一个entries()方法,可以为ZipEntry返回一个Enumeration。