ZIP压缩解压操作实例讲解

作者:创世魂

 

● 帮助说明

本教程所有方法均位于“数据压缩解压及JAR访问支持”模块中。

 

 

一、压缩解压数据

 

● 本分类说明

 

压缩解压操作由ZLIB压缩库提供压缩解压支持,分别为“ZIP压缩类”“ZIP解压类”

注意:此压缩并非打包成ZIP包,只是利用zip压缩数据算法进行数据压缩,如果要进行打包zip,请使用“解压缩工具类”

 

● 压缩解压具体实现实例

 

“ZIP压缩类”使用该方法如下:

1、“Ctrl+M”新建一个方法(名称随意),增加一个参数类型为“字节[]”,返回类型填写“字节[]”

2、调用“创建对象()”方法创建当前压缩对象,参数填写“ZIP亚压缩类.XXX”常量值。

全部常量如下图:

3、调用“重置()”方法,对当前对象进行清空数据操作,本方法无参数。

4、调用“设置输入数据()”方法,设置要压缩的数据,本方法只有一个参数。

5、如果要给当前压缩的数据设置密码,务必调用“设置字典()”方法,本方法的参数为“字节数组”

6、设置数据后,务必调用“完毕()”方法结束所有操作。

7、创建“字节数组输出流”对象,成员数为“要压缩的数据”成员数。

8、定义“临时缓冲”字节数组变量,用于临时存储压缩数据。

9、利用“判断循环()”方法,持续判断当前压缩数据是否到达数据尾部。

10、循环方法内调用“压缩()”方法,压缩数据到“临时缓冲”中,返回值为压缩后的字节数。

11、利用“字节输出流”写出被压缩的数据。

12、“判断循环”结束后,调用“字节输出流.取已写入数据()”方法,读取所有压缩的数据。

13、当不使用当前压缩对象后,务必调用“关闭()”方法关闭对象。

14、最后返回压缩后的数据。

“ZIP解压类”使用该方法如下:

1、解压类的用法和压缩类基本一致,只有一点需要注意。

2、在使用“是否需要预设字典”属性判断是否有密码之前,需要执行“解压()”方法。

3、只有这样才能判断是否有密码,否则程序会崩溃闪退。

代码编写如下图:

“按钮1”被点击:

1、定义“文本数据”变量,初始值导入一串文本。

2、定义类型为“字节[]”的变量,调用定义的“压缩数据()”方法赋值给此变量。

通过“文本到字节数组()”方法可将当前文本数据,转换成字节数组。

3、输出原数据长度和压缩后数据长度做对比。

4、最后可调用“写出文件()”方法,写出压缩后的数据。

“按钮2”被点击:

1、定义类型为“字节[]”的变量,调用“读入文件()”方法,读取被压缩的数据,赋值给此变量。

2、最后输出被解压的数据。

 

运行效果如下图(GIF):