在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
。