大家好,我是指北君。
在本文中,我们来学习如何用Zip4j库创建受密码保护的压缩文件并将其解压。
依赖
让我们先把 zip4j 依赖关系添加到我们的 pom.xml 文件中。
1 | |
压缩一个文件
首先,我们将使用ZipFile addFile()方法将一个名为aFile.txt的文件压缩到一个名为compressed.zip的有密码保护的 zip 文件。
1 | |
setCompressionLevel一行是可选的。我们可以从FASTEST到ULTRA级别中选择(默认是NORMAL)。
在这个例子中,我们使用了AES加密。如果我们想使用Zip标准加密,我们只需用ZIP_STANDARD替换AES。
注意,如果文件 “aFile.txt “在磁盘上不存在,该方法将抛出一个异常。net.lingala.zip4j.exception.ZipException File does not exist: …
为了解决这个问题,我们必须确保该文件是手动创建并放置在项目文件夹中,或者我们必须从Java中创建它。
1 | |
另外,在我们完成了新的ZipFile之后,需要及时关闭资源:
1 | |
压缩多个文件
让我们修改一下代码,以便我们能够一次压缩多个文件。
1 | |
我们不使用addFile方法,而是使用addFiles()并传入一个List的文件。
压缩一个目录
我们可以简单地用addFolder代替addFile方法来压缩一个文件夹。
1 | |
创建一个分割的压缩文件
我们可以通过使用createSplitZipFile和createSplitZipFileFromFolder方法,``将压缩文件分割成几个文件。
1 | |
1 | |
splitLength的单位是字节。
提取所有文件
提取文件也同样简单。我们可以用extractAll()方法从我们的compressed.zip中提取所有文件。
1 | |
提取单个文件
如果我们只想从compressed.zip中提取一个文件,我们可以使用extractFile()方法。
1 | |
总结
综上所述,我们已经学会了如何用Zip4j库在Java中创建受密码保护的压缩文件并将其解压。