Create a compressed (ZIP) fileTag(s): IO

/*
** a simple ZIP tool
**
** ex.  java Zip file.1 file.2 > file.zip
**
*/
import java.io.*;
import java.util.zip.*;

class Zip {
  public static void main(String args[]) throws IOException {
    byte b[] = new byte[512];
    ZipOutputStream zout = new ZipOutputStream(System.out);
    for(int i = 0; i < args.length; i ++) {
      InputStream in = new FileInputStream(args[i]);
      ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/'));
      zout.putNextEntry(e);
      int len=0;
      while((len=in.read(b)) != -1) {
        zout.write(b,0,len);
        }
      zout.closeEntry();
      print(e);
      }
    zout.close();
    }
    
  public static void print(ZipEntry e){
    PrintStream err = System.err;
    err.print("added " + e.getName());
    if (e.getMethod() == ZipEntry.DEFLATED) {
      long size = e.getSize();
      if (size > 0) {
        long csize = e.getCompressedSize();
        long ratio = ((size-csize)*100) / size;
        err.println(" (deflated " + ratio + "%)");
        }
      else {
        err.println(" (deflated 0%)");
        }
      }
    else {
      err.println(" (stored 0%)");
      }
    }
}
NOTE: There no way to directly add or modify an entry to a ZIP file after its creation. To do so, rename the old ZIP to a temporary filename. Expand the contents of the old ZIP, create the new ZIP, add the original contents plus the new files and delete the old ZIP when done.


If you find this article useful, consider making a small donation
to show your support for this Web site and its content.

Written and compiled by Réal Gagnon ©1998-2012
[ home ]