[原创] Java压缩

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;

    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。