zipparameters 使用_zip4j的简单运用
zip4j的简单运用
有的时候项目需要压缩一些文件进行上传,或者从云端下载后进行解压,便需要ZipOutputStream,过程主要是新建一
个压缩文件,然后拷贝所有的文件,拷贝过程中添加新的文件进去,速度比较慢。
既然麻烦,那就可以用别人给的轮子,于是就发现了zip4j。
引入
net.lingala.zip4j
zip4j
2.2.1
或者
implementation "net.lingala.zip4j:zip4j:2.2.1"
压缩文件指定文件压缩
// 初始化一个压缩包,生成在储存卡根目录
String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
ZipFile zipfile = new ZipFile(sdcard + "/a.zip");
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(CompressionMethod.STORE);
// 压缩级别
parameters.setCompressionLevel(CompressionLevel.FAST);
/* 单个文件,平常用不到的
* zipfile.addFile(new File("文件路径"), parameters);
*/
// 多个文件集合
zipfile.addFiles(Arrays.asList(
new File("文件1"),
new File("文件2"),
new File("文件3"))
, parameters);
压缩整个文件夹
// 初始化一个压缩包,生成在储存卡根目录
String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
ZipFile zipfile = new ZipFile(sdcard + "/a.zip");
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(CompressionMethod.STORE);
// 压缩级别
parameters.setCompressionLevel(CompressionLevel.FAST);
// 添加
zipfile.addFolder(new File("文件夹路径"),parameters);
加密压缩
// 初始化一个压缩包,生成在储存卡根目录
String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
ZipFile zipfile = new ZipFile(sdcard + "/a.zip", "密码".toCharArray());
ZipParameters parameters = new ZipParameters();
// 设置加密文件
parameters.setEncryptFiles(true);
// 设置加密方式
parameters.setEncryptionMethod(EncryptionMethod.AES);
// 可选 默认选择AES256
parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
// 压缩方式
parameters.setCompressionMethod(CompressionMethod.STORE);
// 压缩级别
parameters.setCompressionLevel(CompressionLevel.FAST);
// 添加
zipfile.addFolder(new File("文件夹路径"), parameters);
注释:
•压缩方式
- CompressionMethod.STORE 仅打包
- CompressionMethod.DEFLATE 默认
- CompressionMethod.AES_INTERNAL_ONLY 加密压缩
•压缩等级
- CompressionLevel.FASTEST 最快
- CompressionLevel.FAST 快速
- CompressionLevel.NORMAL 一般
- CompressionLevel.MAXIMUM 体积最大
•加密方式
- EncryptionMethod.NONE 不加密
- EncryptionMethod.ZIP_STANDARD
- EncryptionMethod.ZIP_STANDARD_VARIANT_STRONG
- EncryptionMethod.AES AES加密
解压压缩包(这个就没什么花里胡哨的了)
// 检查压缩包是否被加密
new ZipFile("encrypted_zip_file.zip").isEncrypted();
// 把filename.zip全部解压到指定目录(不带密码)
new ZipFile("filename.zip").extractAll("/destination_directory");
// 带密码
new ZipFile("filename.zip", "password".toCharArray()).extractAll("/destination_directory");
// 解压指定文件
new ZipFile("filename.zip").extractFile("fileNameInZip.txt", "/destination_directory");
new ZipFile("filename.zip", "password".toCharArray()).extractFile("fileNameInZip.txt", "/destination_directory");
// 将文件解压到指定目录并重命名
new ZipFile("filename.zip", "password".toCharArray()).extractFile("fileNameInZip.txt", "/destination_directory", "newfileName.txt");
删除压缩包内指定文件(并不能删除文件夹)
new ZipFile("filename.zip").removeFile("fileNameInZipToRemove");
其他更多的可以翻阅Github项目获得更多方法,这里就不多说了
zipparameters 使用_zip4j的简单运用相关推荐
- 在docker上安装部署tomcat项目 超简单,拿来主义
在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...
- Linux下tomcat的安装与卸载以及配置(超简单)
无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
- Docker的安装、镜像源更换与简单应用
Docker的安装.镜像源更换与简单应用[阅读时间:约20分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.Docker的安装 四.Docker的简单应用 1. ...
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】
博客目录(阅读时间:10分钟) 一.win10 0.系统环境 1. win10配置golang环境 ①下载相关软件 ②创建gowork工作空间 ③配置环境变量(GOPATH+PATH) ④验证环境配置 ...
- 简单介绍互联网领域选择与营销方法
在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...
- JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...
- java发送简单邮件_Java程序实现发送简单文本邮件
/** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public ...
最新文章
- VS2015编译32位Opencv310(动态库+静态库,文末有下载链接)
- 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug
- 机载计算机网络拓扑结构设计,计算机网络课程设计-网络拓扑结构设计.doc
- 合肥.NET俱乐部第二期技术沙龙活动预告
- 实践 | kafka 基本使用
- python协程学习
- Linux快速构建apache web服务器
- 解决电脑屏幕显示器亮度无法调节可能与远程工具向日葵有关
- java全能速查宝典_MATLAB函数全能速查宝典 邓薇等 编著.pdf
- computer science 经典书籍及书评
- C语言打印乘法口诀表
- 数字滚动(微信小程序)
- 使用AD8618设计ADC信号调理电路随笔
- MySQL数据库高可用之mmm
- deinterlace 隔行 progressive 逐行 3:2pulldown
- kafka消费者--coordinate分析
- 搜索引擎——新闻搜索引擎
- 决策易医药CRM系统,实现医药代表、公司以及医生三者闭环
- 28、网络互联(网络层)
- OpenFOAM编程基础(1) - Hello World
热门文章
- OpenAI升级Codex,直接将书面语言转为计算机代码;区块链网站被黑客偷走6亿美元加密货币|极客头条...
- 40万亿“新基建”来了!程序员的新翻身机会终于也来了!
- 为什么云开发最终将成为编程新标准?
- 程序员又迎一利器,联想 LeapIOT 工业互联网平台大曝光
- Yaniv Erlich:DNA 很可能是人类终极的储存设备
- 华为电脑终于又能搭载正版 Windows 系统了!
- 有答案了!一张图告诉你到底学Python还是Java?你怎么选?
- 什么是 DNS 劫持、投毒、解析?看这文就懂了!
- Python 进阶:全面解读高级特性之切片!
- 每秒几十万的大规模网络爬虫是如何炼成的?