/* Autor:           Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm
   Firma:           HS Harz, FB AI
   Version:         1.1
   Ersterstellung:  23.03.2013
   Letzte Änderung: 23.03.2013
*/
import java.io.*;
import java.util.zip.*;

// Zip-Datei erstellen

public class Read_gz {


  private static void pause() {
    try {
      System.in.read();
    }
    catch (IOException e) {
    }
  }  // pause

  private static final int BLOCKSIZE = 8192;

  private static void test(String sFilename) {
    String zipname, ziel;
    if ( sFilename.toLowerCase().endsWith(".gz") ) {
      zipname = sFilename;
      ziel = "gz_"+zipname.substring(0,zipname.length()-3);
    }
    else {
      zipname = sFilename + ".gz";
      ziel = "gz_"+sFilename;
    }

    GZIPInputStream gzis = null;
    OutputStream    fos  = null;
    try
    {
      gzis = new GZIPInputStream( new FileInputStream(zipname) );
      fos  = new FileOutputStream( ziel );
      byte[] buffer = new byte[ BLOCKSIZE ];
      int laenge = gzis.read(buffer, 0, BLOCKSIZE);
      while (laenge!=-1) {
        fos.write( buffer, 0, laenge );
        laenge = gzis.read(buffer, 0, BLOCKSIZE);
      }
    }
    catch ( IOException e ) {
      System.out.println( "Fehler, die Datei konnte nicht entzippt werden " + sFilename );
    }
    finally {
      if ( fos != null )
        try { 
          fos.close(); 
        } catch ( IOException e ) { 
          e.printStackTrace();
       }
      if ( gzis != null )
        try { 
           gzis.close(); 
        } catch ( IOException e ) { 
           e.printStackTrace(); 
        }
    }
      System.out.println("Es wurde die Datei write_gz.java.gz in \""+ziel +"\" entzippt");
    System.out.println("Bitte Taste druecken");
  }


  public static void main(String argv[]) {
    test("write_gz.java.gz");
    pause();
  }  // main
}



