依赖包

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

 

执行用例

package com.example.one.utils;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class FourZipFile {
    /**
     * 压缩单个文件并加密
     */
    public static String zipFile(String file, String fileOutPath, String passWord, String fileName) throws FileNotFoundException {
        FileInputStream fileInputStream = new FileInputStream(file);
        ZipParameters parameters = new ZipParameters();
        // 压缩方式
        parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
        // 压缩级别
        parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
        // 开启加密
        parameters.setSourceExternalStream(true);
        // 文件名称
        parameters.setFileNameInZip(fileName);
        if (!"".equals(passWord)) {
            parameters.setEncryptFiles(true);
            // 加密方式
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
            // 设置加密密码
            parameters.setPassword(passWord.toCharArray());
        }
        try {
            ZipFile zipFile = new ZipFile(fileOutPath + fileName + ".zip");
            zipFile.addStream(fileInputStream, parameters);
            // 加密解压后删除源文件
            deleteFile(file);
        } catch (ZipException e) {
            e.printStackTrace();
        }
        return fileOutPath + fileName + ".zip";
    }

    /**
     * 删除文件
     */
    private static boolean deleteFile(String sPath) {
        boolean flag = false;
        File file = new File(sPath);
        // 路径为文件且不为空则进行删除
        if (file.isFile() && file.exists()) {
            file.delete();
            flag = true;
        }
        return flag;
    }

    // 加密文件并压缩
    public static void main(String[] args) throws FileNotFoundException {
        String filePath =  "/Users/xuweiqiang/Desktop/test.txt";
        String fileOutPath = "/Users/xuweiqiang/Desktop/";
        String passWord = "123";
        String fileName = "hello.txt";
        String name = zipFile(filePath,fileOutPath,passWord,fileName);
        System.out.println(name);
    }

}

 

TRANSLATE with x

English

Arabic

Hebrew

Polish

Bulgarian

Hindi

Portuguese

Catalan

Hmong Daw

Romanian

Chinese Simplified

Hungarian

Russian

Chinese Traditional

Indonesian

Slovak

Czech

Italian

Slovenian

Danish

Japanese

Spanish

Dutch

Klingon

Swedish

English

Korean

Thai

Estonian

Latvian

Turkish

Finnish

Lithuanian

Ukrainian

French

Malay

Urdu

German

Maltese

Vietnamese

Greek

Norwegian

Welsh

Haitian Creole

Persian

 

 

TRANSLATE with

COPY THE URL BELOW

Back


EMBED THE SNIPPET BELOW IN YOUR SITE


Enable collaborative features and customize widget: Bing Webmaster Portal

Back

I can see a bigger world.