javaで複数のファイルをgzipで圧縮する方法は?
Javaで複数のファイルを圧縮するためには、GZIPOutputStreamクラスを使用することができます。以下は複数のファイルを圧縮するためのサンプルコードです。
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class GzipMultipleFiles {
public static void main(String[] args) {
String[] files = {"file1.txt", "file2.txt", "file3.txt"};
try (FileOutputStream fos = new FileOutputStream("compressedFiles.gz");
GZIPOutputStream gzipOS = new GZIPOutputStream(fos)) {
for (String file : files) {
try (FileInputStream fis = new FileInputStream(file)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
gzipOS.write(buffer, 0, len);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上記の例では、まず複数のファイル名を含む文字列配列を定義します。次に、データを圧縮ファイルcompressedFiles.gzに書き込むためにFileOutputStreamとGZIPOutputStreamオブジェクトを作成します。その後、各ファイルをループ処理して、FileInputStreamを使用してファイルの内容を読み取り、内容をGZIPOutputStreamに書き込んで、複数のファイルを圧縮します。最後に、発生したIOExceptionをキャッチするための例外処理が行われます。