Java實現(xiàn)自動壓縮文件并加密的方法示例
本文實例講述了Java實現(xiàn)自動壓縮文件并加密的方法。分享給大家供大家參考,具體如下:
實現(xiàn)功能:自動壓縮并加密
/**
*
* @Title: zipFilesAndEncrypt
* @Description: 將指定路徑下的文件壓縮至指定zip文件,并以指定密碼加密,若密碼為空,則不進(jìn)行加密保護(hù)
* @param srcFileName 待壓縮文件路徑
* @param zipFileName zip文件名
* @param password 加密密碼
* @return
* @throws Exception
*/
public void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password) throws Exception{
ZipOutputStream outputStream=null;
System.out.println("進(jìn)入測試類");
if(StringUtils.isEmpty(srcFileName) || StringUtils.isEmpty(zipFileName)){
log.error("請求的壓縮路徑或者文件名有誤");
return;
}
try {
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
if(!StringUtils.isEmpty(password)){
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
}
ArrayList<File> filesToAdd = new ArrayList<File>();
File file=new File(srcFileName);
File[] files = new File[0];
if(file.isDirectory())
{
files = file.listFiles();
for(int i=0;i<files.length;i++){
filesToAdd.add(new File(srcFileName+files[i].getName()));
System.out.println("文件名稱:"+files[i].getName());
}
}
else {
filesToAdd.add(new File(srcFileName+file.getName()));
}
ZipFile zipFile = new ZipFile(srcFileName+zipFileName+".zip");
zipFile.addFiles(filesToAdd, parameters);
}
catch (Exception e) {
System.out.println("文件壓縮出錯");
log.error("文件壓縮出錯", e);
throw e;
}
}
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java Chassis3過載狀態(tài)下的快速失敗解決分析
本文解密了Java Chassis 3快速失敗相關(guān)的機(jī)制和背后故事,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
java網(wǎng)絡(luò)編程學(xué)習(xí)java聊天程序代碼分享
java聊天程序代碼分享,大家參考使用吧2013-12-12
聊聊Java BigInteger里面的mod和remainder的區(qū)別
這篇文章主要介紹了聊聊Java BigInteger里面的mod和remainder的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
通過Feign進(jìn)行調(diào)用@FeignClient?找不到的解決方案
這篇文章主要介紹了通過Feign進(jìn)行調(diào)用@FeignClient?找不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
Java中區(qū)別.toString() ,(String),valueOf()方法
這篇文章主要介紹了Java中區(qū)別.toString() ,(String),valueOf()方法,需要的朋友可以參考下2017-01-01

