(COPY)
import java.io.*;
import java.util.*;
import java.util.zip.*;
import java.text.*;class ViewZip {
  public static void main(String args[]) throws IOException {
    InputStream in = new BufferedInputStream(new FileInputStream(args[0]));
    ZipInputStream zin = new ZipInputStream(in);
    ZipEntry e;
    System.err.println("Size\t  Date       Time    Method    Ratio   Name");
    System.err.println("----\t  ----       ----    ------    -----   ----");
    while((e=zin.getNextEntry())!= null) {
      zin.closeEntry();
      print(e);
      }
    zin.close();
    }
    
  public static void print(ZipEntry e) {
    PrintStream err = System.err;
    err.print(e.getSize() + "\t");
    
    DateFormat df = new SimpleDateFormat ("yyyy.mm.dd  hh:mm:ss");
    Date d = new Date(e.getTime());
    
    err.print(df.format(d) + " ");
    if (e.getMethod() == ZipEntry.DEFLATED) {
      err.print("deflated  ");
      long size = e.getSize();
      if (size > 0) {
        long csize = e.getCompressedSize();
        long ratio = ((size-csize)*100) / size;
        if (ratio < 10) {
          err.write(' ');
          }
        err.print(ratio + "%   ");
        }
      else {
        err.print(" 0%    ");
        }
      }
    else {
      err.println(" (stored   0 %");
      }      err.println(e.getName());
    }
  }

解决方案 »

  1.   

    (COPY)
    import java.io.*;
    import java.util.*;
    import java.util.zip.*;
    import java.text.*;class UnZip {
      public static void main(String args[]) throws IOException {
        InputStream in = new BufferedInputStream(new FileInputStream(args[0]));
        ZipInputStream zin = new ZipInputStream(in);
        ZipEntry e;    while((e=zin.getNextEntry())!= null) {
          if (args.length > 1) {
            if (e.getName().equals(args[1])) {
               unzip(zin, args[1]);
               break;
              }
            }
           unzip(zin, e.getName());
          }
        zin.close();
        }
        
      public static void unzip(ZipInputStream zin, String s) throws IOException {
        System.out.println("unzipping " + s);
        FileOutputStream out = new FileOutputStream(s);
        byte [] b = new byte[512];
        int len = 0;
        while ( (len=zin.read(b))!= -1 ) {
          out.write(b,0,len);
          }
        out.close();
        }
      }