亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

依賴(lài)

讓我們先把 zip4j 依賴(lài)關(guān)系添加到我們的 pom.xml 文件中。

<dependency>
????<groupId>net.lingala.zip4j</groupId>
????<artifactId>zip4j</artifactId>
????<version>2.9.0</version>
</dependency>

壓縮一個(gè)文件

首先,我們將使用ZipFile addFile()方法將一個(gè)名為aFile.txt的文件壓縮到一個(gè)名為compressed.zip的有密碼保護(hù)的 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級(jí)別中選擇(默認(rèn)是NORMAL)。

在這個(gè)例子中,我們使用了AES加密。如果我們想使用Zip標(biāo)準(zhǔn)加密,我們只需用ZIP_STANDARD替換AES

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

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

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

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

zipFile.close();

壓縮多個(gè)文件

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

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()并傳入一個(gè)List的文件。

壓縮一個(gè)目錄

我們可以簡(jiǎn)單地用addFolder代替addFile方法來(lái)壓縮一個(gè)文件夾。

ZipFile?zipFile?=?new?ZipFile("compressed.zip",?"password".toCharArray());
zipFile.addFolder(new?File("/users/folder_to_add"),?zipParameters);

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

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

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é)。

提取所有文件

提取文件也同樣簡(jiǎn)單。我們可以用extractAll()方法從我們的compressed.zip中提取所有文件。

ZipFile?zipFile?=?new?ZipFile("compressed.zip",?"password".toCharArray());
zipFile.extractAll("/destination_directory");

提取單個(gè)文件

如果我們只想從compressed.zip中提取一個(gè)文件,我們可以使用extractFile()方法。

ZipFile?zipFile?=?new?ZipFile("compressed.zip",?"password".toCharArray());
zipFile.extractFile("aFile.txt",?"/destination_directory");

總結(jié)

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

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

相關(guān)文章

  • Java實(shí)現(xiàn)獲取小程序帶參二維碼并保存到本地

    Java實(shí)現(xiàn)獲取小程序帶參二維碼并保存到本地

    這篇文章主要介紹了Java實(shí)現(xiàn)獲取小程序帶參二維碼并保存到本地,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java 拋出異常處理的方法

    java 拋出異常處理的方法

    這篇文章主要介紹了java 拋出異常處理的方法的相關(guān)資料,throws關(guān)鍵字通常被應(yīng)用在聲明方法時(shí),用來(lái)指定可能拋出的異常,這里就講下如何使用,需要的朋友可以參考下
    2017-08-08
  • Java構(gòu)造函數(shù)與普通函數(shù)用法詳解

    Java構(gòu)造函數(shù)與普通函數(shù)用法詳解

    本篇文章給大家詳細(xì)講述了Java構(gòu)造函數(shù)與普通函數(shù)用法以及相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的完整步驟

    spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的完整步驟

    JSAPI支付是用戶(hù)在微信中打開(kāi)商戶(hù)的H5頁(yè)面,商戶(hù)在H5頁(yè)面通過(guò)調(diào)用微信支付提供的JSAPI接口調(diào)起微信支付模塊完成支付,下面這篇文章主要給大家介紹了關(guān)于spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解

    sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解

    今天小編就為大家分享一篇關(guān)于sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • java 實(shí)現(xiàn)回調(diào)代碼實(shí)例

    java 實(shí)現(xiàn)回調(diào)代碼實(shí)例

    本文主要介紹Java的回調(diào)機(jī)制,并附實(shí)例代碼以供大家參考學(xué)習(xí),有需要的小伙伴可以看下
    2016-07-07
  • Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收功能(支持消費(fèi)者多實(shí)例部署)

    Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收功能(支持消費(fèi)者多實(shí)例部署)

    這篇文章主要介紹了Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署),本文通過(guò)案例場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Maven下載和配置環(huán)境教程

    Maven下載和配置環(huán)境教程

    這篇文章主要為大家詳細(xì)介紹了Maven下載和配置環(huán)境教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Java中遞歸原理實(shí)例分析

    Java中遞歸原理實(shí)例分析

    這篇文章主要介紹了Java中遞歸原理,實(shí)例分析了java中遞歸的原理與實(shí)現(xiàn)方法,以及使用過(guò)程中的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼

    java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼

    這篇文章主要介紹了jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論