java生成压缩包并加密的设置(java压缩文件为zip并加密)

在本文中,我们来学习如何用Zip4j库创建受密码保护的压缩文件并将其解压。依赖让我们先把zip4j依赖关系添加到我们的pom.xml文件中。dependency>groupId>net...

在本文中,我们来学习如何用Zip4j库创建受密码保护的压缩文件并将其解压。

依赖

让我们先把 zip4j 依赖关系添加到我们的 pom.xml 文件中。
<dependency>    <groupId>net.lingala.zip4j</groupId>    <artifactId>zip4j</artifactId>    <version>2.9.0</version></dependency>

压缩一个文件

首先,我们将使用ZipFile addFile()方法将一个名为aFile.txt的文件压缩到一个名为compressed.zip的有密码保护的 zip 文件。
ZipParameters zipParameters = new ZipParameters();zipParameters.setEncryptFiles(true);zipParameters.setCompressionLevel(CompressionLevel.HIGHER);zipParameters.setEncryptionMethod(EncryptionMethod.AES);ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());zipFile.addFile(new File(\"aFile.txt\"), zipParameters);
setCompressionLevel一行是可选的。我们可以从FASTEST到ULTRA级别中选择(默认是NORMAL)。 在这个例子中,我们使用了AES加密。如果我们想使用Zip标准加密,我们只需用ZIP_STANDARD替换AES。 注意,如果文件 “aFile.txt “在磁盘上不存在,该方法将抛出一个异常。net.lingala.zip4j.exception.ZipException File does not exist: … 为了解决这个问题,我们必须确保该文件是手动创建并放置在项目文件夹中,或者我们必须从Java中创建它。
File fileToAdd = new File(\"aFile.txt\");if (!fileToAdd.exists()) {    fileToAdd.createNewFile();}
另外,在我们完成了新的ZipFile之后,需要及时关闭资源:
zipFile.close();

压缩多个文件

让我们修改一下代码,以便我们能够一次压缩多个文件。
ZipParameters zipParameters = new ZipParameters();zipParameters.setEncryptFiles(true);zipParameters.setEncryptionMethod(EncryptionMethod.AES);List filesToAdd = Arrays.asList(  new File(\"aFile.txt\"),  new File(\"bFile.txt\"));ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());zipFile.addFiles(filesToAdd, zipParameters);
我们不使用addFile方法,而是使用addFiles()并传入一个List的文件。

压缩一个目录

我们可以简单地用addFolder代替addFile方法来压缩一个文件夹。
ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());zipFile.addFolder(new File(\"/users/folder_to_add\"), zipParameters);

创建一个分割的压缩文件

我们可以通过使用createSplitZipFile和createSplitZipFileFromFolder方法,“将压缩文件分割成几个文件。
ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());int splitLength = 1024 * 1024 * 10; //10MBzipFile.createSplitZipFile(Arrays.asList(new File(\"aFile.txt\")), zipParameters, true, splitLength);
zipFile.createSplitZipFileFromFolder(new File(\"/users/folder_to_add\"), zipParameters, true, splitLength);
splitLength的单位是字节。

提取所有文件

提取文件也同样简单。我们可以用extractAll()方法从我们的compressed.zip中提取所有文件。
ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());zipFile.extractAll(\"/destination_directory\");

提取单个文件

如果我们只想从compressed.zip中提取一个文件,我们可以使用extractFile()方法。
ZipFile zipFile = new ZipFile(\"compressed.zip\", \"password\".toCharArray());zipFile.extractFile(\"aFile.txt\", \"/destination_directory\");

总结

综上所述,我们已经学会了如何用Zip4j库在Java中创建受密码保护的压缩文件并将其解压。

阅读前请先查看【免责声明】本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 1217266901@qq.com 举报,一经查实,本站将立刻删除。 转载请注明出处:https://jingfakeji.com/tech/10629.html

上一篇 2023年09月09日 18:22
下一篇 2023年09月09日 18:22

相关推荐

联系我们

在线咨询: QQ交谈

邮箱:1217266901@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信