import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@Slf4j
public class ZipUtil {
public static void zipFiles(List<File> srcFiles, File zipFile) {
byte[] buf = new byte[1024];
if (!zipFile.exists()) {
try {
zipFile.createNewFile();
} catch (IOException e) {
log.error("ZipUtil.zipFiles create new file error.", e);
}
}
try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {
for (int i = 0; i < srcFiles.size(); i++) {
File srcFile = srcFiles.get(i);
if (!srcFile.exists()) {
continue;
}
try (FileInputStream in = new FileInputStream(srcFile)) {
out.putNextEntry(new ZipEntry(srcFile.getName()));
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
} catch (Exception ex){
log.error("ZipUtil.zipFiles add file error. ", ex);
}
}
} catch (Exception e) {
log.error("ZipUtil.zipFiles error. ", e);
}
}
public static void main(String[] args) {
File file = new File("C:\\app\\temp\\1.txt");
File file2 = new File("C:\\app\\temp\\2.txt");
List<File> files = List.of(file, file2);
File zipFile = new File("C:\\app\\temp\\" + System.currentTimeMillis() + ".zip");
zipFiles(files, zipFile);
}
}
java 压缩多个文件
最新推荐文章于 2023-08-31 13:32:39 发布