1.导入pom依赖

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

2.代码实现

public  void reZipCsvFiles(MultipartFile[] file,String targetZipRealPath,byte[] aesByte){
        String aesStr = new String(aesByte);
        try {
            //设置压缩文件参数
            ZipParameters parameters = new ZipParameters();
            //设置压缩方法
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            //设置压缩级别
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            //设置压缩文件是否加密
            parameters.setEncryptFiles(true);
            //设置aes加密强度
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
            //设置加密方法
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
            //设置密码
            parameters.setPassword(aesStr.toCharArray());
            //压缩文件,并生成压缩文件
            ArrayList<File> filesToAdd = new ArrayList<File>();
            for (MultipartFile file1 : file) {
                System.out.println(file1.getOriginalFilename());
                //File realFile = new File(file1.getOriginalFilename());
                File realFile = new File(okFile+ "temp"+File.separator+file1.getName());
                //将file1文件的流复制到readFile中(MutipartFile转File)
                FileUtils.copyInputStreamToFile(file1.getInputStream(),realFile);
                filesToAdd.add(realFile);
            }
            //创建ZipFile文件对象,指定压缩后的保存位置。
            ZipFile zipFile = new ZipFile(okFile+targetZipRealPath);
            //将文件列表和加密参数添加到zipFile开始压缩生成zip文件。
            zipFile.addFiles(filesToAdd,parameters );
        } catch (ZipException | IOException e) {
            e.printStackTrace();
        }

    }