import java.io .*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* 压缩工具类
*
* @author 韩朝阳
* @date 2020-06-16 15:39
*/
public class ZipUtil {
/**
* 压缩方法
*
* @param targetFile 目标文件(.zip)
* @param files 要压缩的文件
* @return 压缩完成的目标文件
*/
public static File zip(File targetFile, Collection<File> files) throws IOException {
// 目标文件不存在则创建
if (!targetFile.exists()) {
targetFile.createNewFile();
}
// 创建ZipOutputStream
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(targetFile));
// 遍历文件压缩
FileInputStream fileInputStream = null;
for (File file : files) {
// 要压缩的这个文件不存在,跳过
if (!file.exists()) {
continue;
}
zipOutputStream.putNextEntry(new ZipEntry(file.getName()));
fileInputStream = new FileInputStream(file);
int length = 0;
byte[] buffer = new byte[1024];
while ((length = fileInputStream.read(buffer)) > 0) {
zipOutputStream.write(buffer, 0, length);
}
zipOutputStream.closeEntry();
}
// 关闭资源
if (fileInputStream != null) {
fileInputStream.close();
}
// 关闭资源
if (zipOutputStream != null) {
zipOutputStream.close();
}
return targetFile;
}
}
网友评论