//file: GZip.java
import java.io.*;
import java.util.zip.*;
import javax.swing.JOptionPane;

public class GZip {
  public static int sChunk = 8192;

  public static void main(String[] args) {
    if (args.length != 1) {
      JOptionPane.showInputDialog(null,"KULLANIM: java GZip girisdosyasi");
      return;
    }
    // çıktı doyası oluştur.
    String zipname = args[0] + ".gz";
    GZIPOutputStream zipout;
    try {
      FileOutputStream out = new FileOutputStream(zipname);
      zipout = new GZIPOutputStream(out);
    }
    catch (IOException e) {
    JOptionPane.showInputDialog(null,"Dosya oluşturma hatası : " + zipname + ".");
      return;
    }
    byte[] buffer = new byte[sChunk];
    // dosyayı sıkıştır
    try {
      FileInputStream in = new FileInputStream(args[0]);
      int length;
      while ((length = in.read(buffer, 0, sChunk)) != -1)
        zipout.write(buffer, 0, length);
      in.close(  );
    }
    catch (IOException e) {
    JOptionPane.showInputDialog(null,"Dosya sıkıştırma hatası : " + args[0] + ".");
    }
    try { zipout.close(  ); }
    catch (IOException e) {}
  }
}
