欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何在Java中加密和解密zip文件

 更新時間:2022年09月26日 08:32:02   作者:指北君  
在本文中,我們來學習如何用Zip4j庫創(chuàng)建受密碼保護的壓縮文件并將其解壓,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下

依賴

讓我們先把 zip4j 依賴關(guān)系添加到我們的 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一行是可選的。我們可以從FASTESTULTRA級別中選擇(默認是NORMAL)。

在這個例子中,我們使用了AES加密。如果我們想使用Zip標準加密,我們只需用ZIP_STANDARD替換AES

注意,如果文件 "aFile.txt "在磁盤上不存在,該方法將拋出一個異常。net.lingala.zip4j.exception.ZipException File does not exist: …

為了解決這個問題,我們必須確保該文件是手動創(chuàng)建并放置在項目文件夾中,或者我們必須從Java中創(chuàng)建它。

File?fileToAdd?=?new?File("aFile.txt");
if?(!fileToAdd.exists())?{
????fileToAdd.createNewFile();
}

另外,在我們完成了新的ZipFile之后,需要及時關(guān)閉資源:

zipFile.close();

壓縮多個文件

讓我們修改一下代碼,以便我們能夠一次壓縮多個文件。

ZipParameters?zipParameters?=?new?ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);

List<File>?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);

創(chuàng)建一個分割的壓縮文件

我們可以通過使用createSplitZipFilecreateSplitZipFileFromFolder方法,``將壓縮文件分割成幾個文件。

ZipFile?zipFile?=?new?ZipFile("compressed.zip",?"password".toCharArray());
int?splitLength?=?1024?*?1024?*?10;?//10MB
zipFile.createSplitZipFile(Arrays.asList(new?File("aFile.txt")),?zipParameters,?true,?splitLength);
zipFile.createSplitZipFileFromFolder(new?File("/users/folder_to_add"),?zipParameters,?true,?splitLength);

splitLength的單位是字節(jié)。

提取所有文件

提取文件也同樣簡單。我們可以用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");

總結(jié)

綜上所述,我們已經(jīng)學會了如何用Zip4j庫在Java中創(chuàng)建受密碼保護的壓縮文件并將其解壓。

到此這篇關(guān)于詳解如何在Java中加密和解密zip文件的文章就介紹到這了,更多相關(guān)Java加密解密zip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論