美文网首页程序员
[原创] Java压缩

[原创] Java压缩

作者: 韩朝阳 | 来源:发表于2020-06-16 16:11 被阅读0次
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;

    }

}

相关文章

网友评论

    本文标题:[原创] Java压缩

    本文链接:https://www.haomeiwen.com/subject/bydrxktx.html