import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.GZIPOutputStream; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 
 
public class Compress { 
  public static void gzipFile(String from, String to) throws IOException { 
    FileInputStream in = new FileInputStream(from); 
    GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(to)); 
    byte[] buffer = new byte[4096]; 
    int bytesRead; 
    while ((bytesRead = in.read(buffer)) != -1) 
      out.write(buffer, 0, bytesRead); 
    in.close(); 
    out.close(); 
  } 
 
  /** Zip the contents of the directory, and save it in the zipfile */ 
  public static void zipDirectory(String dir, String zipfile) 
      throws IOException, IllegalArgumentException { 
    // Check that the directory is a directory, and get its contents 
    File d = new File(dir); 
    if (!d.isDirectory()) 
      throw new IllegalArgumentException("Not a directory:  " 
          + dir); 
    String[] entries = d.list(); 
    byte[] buffer = new byte[4096]; // Create a buffer for copying 
    int bytesRead; 
 
    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); 
 
    for (int i = 0; i < entries.length; i++) { 
      File f = new File(d, entries[i]); 
      if (f.isDirectory()) 
        continue;//Ignore directory 
      FileInputStream in = new FileInputStream(f); // Stream to read file 
      ZipEntry entry = new ZipEntry(f.getPath()); // Make a ZipEntry 
      out.putNextEntry(entry); // Store entry 
      while ((bytesRead = in.read(buffer)) != -1) 
        out.write(buffer, 0, bytesRead); 
      in.close();  
    } 
    out.close(); 
  } 
 
  public static void main(String args[]) throws IOException { 
    String from = "."; 
    File f = new File(from); 
    boolean directory = f.isDirectory(); // Is it a file or directory? 
 
    Compress.zipDirectory(from, from + ".zip"); 
    Compress.gzipFile(from, from + ".gz"); 
  } 
} 
 
            
          
     
     
     
  
  |