Java如何给压缩文件设置密码

来源:互联网 发布:多重搜索算法 编辑:程序博客网 时间:2024/05/17 09:15

使用Java压缩文件,有时会遇到给压缩文件设置密码的需求,可以使用开源库Zip4j 来完成此功能,它采用纯java实现,使用方便,来看看如何使用。

Maven依赖

<!-- https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j --><dependency>    <groupId>net.lingala.zip4j</groupId>    <artifactId>zip4j</artifactId>    <version>1.3.2</version></dependency>

CreatePasswordProtectedZipExample.java

/** * 压缩文件并设置密码 * @Auothor wzx * @Date 2017/3/12 0012 */public class CreatePasswordProtectedZipExample {    @Test    public void test() {        try {            //创建压缩文件            ZipFile zipFile = new ZipFile("D:/test.zip");            ArrayList<File> files = new ArrayList<>();            files.add(new File("D:/txt1.txt"));            files.add(new File("D:/txt2.txt"));            //设置压缩文件参数            ZipParameters parameters = new ZipParameters();            //设置压缩方法            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);            //设置压缩级别            //DEFLATE_LEVEL_FASTEST     - Lowest compression level but higher speed of compression            //DEFLATE_LEVEL_FAST        - Low compression level but higher speed of compression            //DEFLATE_LEVEL_NORMAL  - Optimal balance between compression level/speed            //DEFLATE_LEVEL_MAXIMUM     - High compression level with a compromise of speed            //DEFLATE_LEVEL_ULTRA       - Highest compression level but low speed            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);            //设置压缩文件加密            parameters.setEncryptFiles(true);            //设置加密方法            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);            //设置aes加密强度            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);            //设置密码            parameters.setPassword("wzx");            //添加文件到压缩文件            zipFile.addFiles(files, parameters);        } catch (ZipException e) {            e.printStackTrace();        }    }}

如上,使用起来很方便!

参考
http://howtodoinjava.com/core-java/io/how-to-create-password-protected-zip-files-in-java/

0 0
原创粉丝点击