作者:创世魂
● 帮助说明
本教程所有方法均位于“数据压缩解压及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):