java 生成zip压缩文件

1、zip压缩文件



文章目录

  • java 生成zip压缩文件
  • 一、引入jar包
  • 二、工具类
  • 1.有密码压缩
  • 2.无密码压缩
  • 三、示例
  • 3.1、压缩前
  • 3.2、调用压缩方法
  • 3.3、压缩后
  • 四、总结



一、引入jar包

这里使用zip4j jar包进行压缩,使用最新的2.11.1版本,可联网下载。

<dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.11.1</version>
        </dependency>

二、工具类

1.有密码压缩

代码如下(示例):

public static void zip4jWithPassword(String zipFileName, String inputPath,String password){
        ZipParameters zipParameters = new ZipParameters();
        zipParameters.setEncryptFiles(true);
        zipParameters.setEncryptionMethod(EncryptionMethod.AES);
        zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
        try {
            new net.lingala.zip4j.ZipFile(zipFileName,password.toCharArray()).addFolder(new File(inputPath),zipParameters);
        } catch (ZipException e) {
            throw new RuntimeException(e);
        }
    }

2.无密码压缩

代码如下(示例):

public static void zip4jWithNoPassword(String zipFileName, String inputPath ){
        ZipParameters zipParameters = new ZipParameters();
        try {
            new net.lingala.zip4j.ZipFile(zipFileName).addFolder(new File(inputPath),zipParameters);
        } catch (ZipException e) {
            throw new RuntimeException(e);
        }
    }

三、示例

3.1、压缩前

java zip 中文 zip压缩 java_jar包

3.2、调用压缩方法

public class test {
    public static void main(String[] args) {
        String inputFile = "D:\\zip压缩";
        String zipFile = "D:\\zip压缩\\测试文件.zip";
        ZipUtilAdmin.zip4jWithPassword(zipFile,inputFile,"123456789");
    }
}

3.3、压缩后

java zip 中文 zip压缩 java_java_02

四、总结

无密码压缩可仿照有密码压缩样例自行进行测试。zip4j jar包有多个版本,建议使用最新版本,低版本可能不支持本文写法。本文介绍的压缩方法是带目录的压缩,压缩后带一层目录,见下图:

java zip 中文 zip压缩 java_无密码_03


并且本方法压缩后的路径可自行定义。