-4

以下のコードでファイルをgzipに変換することはできますが、ここでは出力を静的に入力&の場所を指定しています。しかし、私はここhome6.jpgの代わりに、私は、コマンドからそれを得る動的ファイルをGZip形式で圧縮するにはどうすればよいですか?

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.GZIPOutputStream; 


public class CompressFileGzip { 

    public static void main(String[] args) { 

     String source_filepath = "C:\\Users\\abc\\Desktop\\home6.jpg"; 

     String destinaton_zip_filepath = "C:\\Users\\abc\\Desktop\\home6.gzip"; 



     CompressFileGzip gZipFile = new CompressFileGzip(); 

     gZipFile.gzipFile(source_filepath, destinaton_zip_filepath); 

    } 

    public void gzipFile(String source_filepath, String destinaton_zip_filepath) { 

     byte[] buffer = new byte[1024]; 
     try {  
      FileOutputStream fileOutputStream =new FileOutputStream(destinaton_zip_filepath); 

      GZIPOutputStream gzipOuputStream = new GZIPOutputStream(fileOutputStream); 

      FileInputStream fileInput = new FileInputStream(source_filepath); 

      int bytes_read; 

      while ((bytes_read = fileInput.read(buffer)) > 0) { 

       gzipOuputStream.write(buffer, 0, bytes_read); 

      } 

      fileInput.close(); 

      gzipOuputStream.finish(); 

      gzipOuputStream.close(); 

      System.out.println("The file was compressed successfully!"); 

     } catch (IOException ex) { 

      ex.printStackTrace(); 

     } 

    } 

} 
+0

静的な値は、gzipメソッドにパラメータとして渡したものです。どのように動的なファイル名を提供したいですか?利用できる可能性は数多くあり、そうする方法を提供する多くのAPIがあります。 –

+0

'string source_filepath = args [0]'おそらく? CompressFileGzip.main(CompressFileGzip.java:20)で0 \tあなたが実際にコマンドを渡す必要が@raghu – Henry

+0

は、単に7Zを使用したスレッド「メイン」java.lang.ArrayIndexOutOfBoundsExceptionで –

答えて

0

何かを与えることができ、私は

String source_filepath = "C:\\Users\\abc\\Desktop\\home6.jpg"; 
String destinaton_zip_filepath =C:\\Users\\abc\\Desktop\\home6.gzip"; 

を使用していますここ

に動的に例をファイル名を提供する必要があります行引数:

public static void main(String[] args) { 
    String source_filepath = args[0]; 
    String destinaton_zip_filepath = args[1]; 

エラーチェック用のコードを追加することをお勧めします実際には2つのコマンドライン引数、ファイルが存在することを確認するためにここにeを入力してください。

+0

例外(7zipを、コマンドラインインターフェースを持っています)行引数 – raghu

+0

を助けてください: – Mureinik

関連する問題