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的简单运用相关推荐

  1. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  2. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

  3. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  4. Docker的安装、镜像源更换与简单应用

    Docker的安装.镜像源更换与简单应用[阅读时间:约20分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.Docker的安装 四.Docker的简单应用 1. ...

  5. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  6. 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】

    博客目录(阅读时间:10分钟) 一.win10 0.系统环境 1. win10配置golang环境 ①下载相关软件 ②创建gowork工作空间 ③配置环境变量(GOPATH+PATH) ④验证环境配置 ...

  7. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  8. JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

    一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...

  9. java发送简单邮件_Java程序实现发送简单文本邮件

    /** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public  ...

最新文章

  1. VS2015编译32位Opencv310(动态库+静态库,文末有下载链接)
  2. 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug
  3. 机载计算机网络拓扑结构设计,计算机网络课程设计-网络拓扑结构设计.doc
  4. 合肥.NET俱乐部第二期技术沙龙活动预告
  5. 实践 | kafka 基本使用
  6. python协程学习
  7. Linux快速构建apache web服务器
  8. 解决电脑屏幕显示器亮度无法调节可能与远程工具向日葵有关
  9. java全能速查宝典_MATLAB函数全能速查宝典 邓薇等 编著.pdf
  10. computer science 经典书籍及书评
  11. C语言打印乘法口诀表
  12. 数字滚动(微信小程序)
  13. 使用AD8618设计ADC信号调理电路随笔
  14. MySQL数据库高可用之mmm
  15. deinterlace 隔行 progressive 逐行 3:2pulldown
  16. kafka消费者--coordinate分析
  17. 搜索引擎——新闻搜索引擎
  18. 决策易医药CRM系统,实现医药代表、公司以及医生三者闭环
  19. 28、网络互联(网络层)
  20. OpenFOAM编程基础(1) - Hello World

热门文章

  1. OpenAI升级Codex,直接将书面语言转为计算机代码;区块链网站被黑客偷走6亿美元加密货币|极客头条...
  2. 40万亿“新基建”来了!程序员的新翻身机会终于也来了!
  3. 为什么云开发最终将成为编程新标准?
  4. 程序员又迎一利器,联想 LeapIOT 工业互联网平台大曝光
  5. Yaniv Erlich:DNA 很可能是人类终极的储存设备
  6. 华为电脑终于又能搭载正版 Windows 系统了!
  7. 有答案了!一张图告诉你到底学Python还是Java?你怎么选?
  8. 什么是 DNS 劫持、投毒、解析?看这文就懂了!
  9. Python 进阶:全面解读高级特性之切片!
  10. 每秒几十万的大规模网络爬虫是如何炼成的?