import java.io.IOException;
import java.io.InputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.zip.GZIPOutputStream;

class GZIP
{
    public static void main( String [ ] args )
    {
        for( int i = 0; i < args.length; i++ )
            gzip( args[ i ] );
    }
    
    public static void gzip( String fileName )
    {
        String outFile = fileName + ".gz";
        
        InputStream fin = null;
        OutputStream fout = null;
        
        try
        {        
            fin = new BufferedInputStream( new FileInputStream( fileName ) );        
            fout = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream( outFile ) ) );
        
            int ch;        
            while( ( ch = fin.read( ) ) != -1 )
                fout.write( ch );    
        }
        catch( IOException e )
        {
            System.err.println( "I/O error: " + e );
        }
        finally
        {
            try
            {
                if( fin != null )
                    fin.close( );
                if( fout != null )
                    fout.close( );    
            }
            catch( IOException e )
            {
                System.err.println( "Closing error: " + e );
            }    
        }    
    }    
}
