java多个文件加密压缩_java中文件如何加密压缩?
文件加密压缩
在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 excel 报表 做加密压缩的问题,今天有时间总结一下,我这里简单列举功能代码,连带其它代码文末会一并给出。
1.单个文件加密压缩
单个文件加密方法,需传输 3 个参数:被压缩源文件,压缩目标文件和加密密钥,如下
/**
* @Title: encrypt_zip
* @Description:将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
* @param src_file 待压缩文件路径
* @param dst_file zip路径+文件名
* @param encode 加密密码
* @return
*/
public static void encrypt_zip(String src_file, String dst_file, String encode) {
File file = new File(src_file);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 压缩级别
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密方式
parameters.setPassword(encode.toCharArray());//设置密码
try {
ZipFile zipFile = new ZipFile(dst_file);
zipFile.setFileNameCharset("gbk");
zipFile.addFile(file, parameters);
} catch (ZipException e) {
e.printStackTrace();
}
}
2.多文件加密压缩
多文件加密压缩和单文件类似,但是,这个方法包含上面的方法,甚至功能上可以替换上面方法,具体看下 code
/**
* @Title: zipFilesAndEncrypt
* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
* @param srcFileName 待压缩文件路径 或 文件夹路径
* @param zipFileName zip路径+文件名
* @param password 加密密码
* @return
*/
public static void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password){
if(StrTool.is_empty(srcFileName) || StrTool.is_empty(zipFileName)){
System.out.println("请求的压缩路径或者文件名有误");
return;
}
try {
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);//压缩级别
if(!StrTool.is_empty(password)){
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密方式
parameters.setPassword(password);
}
ArrayList filesToAdd=getFiles(srcFileName);
ZipFile zipFile = new ZipFile(zipFileName);
zipFile.setFileNameCharset("gbk");
zipFile.addFiles(filesToAdd, parameters);
} catch (ZipException e) {
System.out.println("文件压缩出错");
e.printStackTrace();
}
}
//通过路径获取压缩文件集合
private static ArrayList getFiles(String srcFileName){
ArrayList filesToAdd = new ArrayList();
File file=new File(srcFileName);
File[] files = new File[0];
if(file.isDirectory()){
files = file.listFiles();
for(int i=0;i
if(files[i].getName().endsWith(".xls")){//xls结尾的excel添加压缩集合
filesToAdd.add(new File(files[i].getPath()));
System.out.println("文件:"+files[i].getPath());
}
}
} else {
filesToAdd.add(new File(file.getPath()));
}
return filesToAdd;
}
具体代码请关注个人公众号【charmsongo】留言「zip」获取
说在最后,如果有什么问题,请留言,我会尽量在第一时间给您答复
java多个文件加密压缩_java中文件如何加密压缩?相关推荐
- Java文件的状态_java中文件的状态
如何知道文件的状态,即应用程序是否被阻止且是否阻塞.在java中,如果有一个API,或者您可以使用Java IO. 谢谢. 解决方法: 如果您询问文件锁定,则以下示例来自Example Depot,显 ...
- java文件复制速度_java中文件复制得速度测试
//需要将apache开发的两个插件包拷到lib目录下:commons-fileupload-1.2.2.jar commons-io-2.0.1.jar package com.nay.servl ...
- java绕过加密密码_JAVA中使用MD5加密实现密码加密
1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.securit ...
- java 压缩加密_java中文件如何加密压缩?
@ 文件加密压缩 在现如今已经可以实现大部分功能的互联网需求中,安全成为了需要的非必需品,工作需求中会遇到对导出的 excel 报表 做加密压缩的问题,今天有时间总结一下,我这里简单列举功能代码,连带 ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
- java解压zip包_Java中文件的压缩与解压,每天进步一点点系列
使用java.util.zip包,实现文件的压缩与解压,并提供了下载方法 注意 无论是调用createNewFile()创建文件,还是在创建输出流时由输出流负责创建文件,都必须保证父路径已经存在,否则 ...
- java 接口 安全加密_Java中的安全加密
java 接口 安全加密 上一次我写关于密码学的文章时 ,我概述了Apache Shiro加密API,并展示了如何使用其两个对称密码. 我还写道:"您不需要在应用程序中加密和解密敏感数据的更 ...
- java 文件压缩_java实现文件压缩
java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...
- java 流压缩_java之IO流:压缩文件
在java的学习中,IO流是一个避不开的话题.在java日常的学习和使用中,为了给不同的场景提供不同的用途,IO流拥有一个庞大的方法集合.虽然给使用者提供了极大的便利,但此同时也带来了学习时的异常冗杂 ...
- java mp3文件压缩_java实现文件压缩
java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...
最新文章
- window10 系统查看控制面板的方法
- Halcon|读取3D相机点云数据
- Python str 函数 - Python零基础入门教程
- 49 - 算法 - 二叉树 - leetcode108.-将有序数组转换为二叉搜索树-中序遍历 - vector
- 分数等级_山东新高考:quot;6选3quot;等级考分数是怎么换算出来的
- datetime数据类型_当pandas遇上数据类型问题
- 在 WPF 程序中使用矢量图
- 如何做肌电信号手势识别?
- linux日志关键词高亮,【转载】Linux使用tailf高亮显示关键字
- 23西南大学电子信息907专硕考研经验贴
- windows系统镜像修复计算机,为你详解win7系统还原及映像修复功能
- 未来-YLB-跳蚤市场:跳蚤市场(flea market)
- Ruby-学习之路1.1
- C语言简单的链表的创建(正向和反向)
- lrd热加载方式启动本地web服务(我用于从github把别人服务器代码拉倒本地去搭建自己的网络服务)
- 支付宝schlum url 启动指定界面
- java英语介绍_java自我介绍英语口语
- HTTP 传输编码增大了传输量,只为解决这一个问题 | 实用 HTTP
- linux怎么在终端里查系统信息,Neofetch:在终端中显示Linux系统信息
- LaTex的表格、图片、参考文献的基本操作
热门文章
- 爬虫:获取OLD的Oxford 3000 and 5000
- 整站优化与网页优化的区别
- 伊利诺伊大学厄本那 香槟分校计算机科学,美国伊利诺伊大学厄本那香槟分校专业设置...
- 2022年系统架构设计师考试大纲
- python100个必备包_这套python教程超详细,包你1小时入门Python,100天摇身变大牛...
- 微观经济学第七周作业(生产函数,规模报酬,投入产出)
- [转载]主流漫游技术-OKC802.11r介绍
- [USACO09NOV]Job Hunt
- 加载驱动时提示“驱动服务启动失败”或者“此驱动程序被阻止加载”
- vsd格式文件用什么打开? .vsd