在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();
}
}
}
在上面的示例中,首先定義了一個包含多個文件名的字符串數組。然后創建一個FileOutputStream
和GZIPOutputStream
對象來將數據寫入到壓縮文件compressedFiles.gz
中。接著通過循環遍歷每個文件,使用FileInputStream
讀取文件內容,并將內容寫入到GZIPOutputStream
中,實現對多個文件的壓縮。最后在異常處理中捕獲可能出現的IOException
。