Java實現自動壓縮文件并加密的方法示例
更新時間:2018年01月12日 09:03:35 作者:東天里的冬天
這篇文章主要介紹了Java實現自動壓縮文件并加密的方法,涉及java針對文件進行zip壓縮并加密的相關操作技巧,需要的朋友可以參考下
本文實例講述了Java實現自動壓縮文件并加密的方法。分享給大家供大家參考,具體如下:
實現功能:自動壓縮并加密
/**
*
* @Title: zipFilesAndEncrypt
* @Description: 將指定路徑下的文件壓縮至指定zip文件,并以指定密碼加密,若密碼為空,則不進行加密保護
* @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("進入測試類");
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;
}
}
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java文件與目錄操作技巧匯總》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Java Chassis3過載狀態(tài)下的快速失敗解決分析
本文解密了Java Chassis 3快速失敗相關的機制和背后故事,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
聊聊Java BigInteger里面的mod和remainder的區(qū)別
這篇文章主要介紹了聊聊Java BigInteger里面的mod和remainder的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
通過Feign進行調用@FeignClient?找不到的解決方案
這篇文章主要介紹了通過Feign進行調用@FeignClient?找不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
Java中區(qū)別.toString() ,(String),valueOf()方法
這篇文章主要介紹了Java中區(qū)別.toString() ,(String),valueOf()方法,需要的朋友可以參考下2017-01-01

