数据压缩格式java语言应用程序设计方法
——第一部分 Zip压缩格式程序设计方法
作者:苏洋 本文选自:赛迪网 2003年06月09日
基于Java语言的健壮姓、跨平台应用能力以及面向对象的程序设计特征等因素,Java语言一直是软件工程师在构建网络应用程序,非凡是需要在异构平台下运行的软件系统时的首选程序设计语言。
但是,由于网络带宽的限制,非凡是开发以互联网为传输媒介的软件系统时,软件在运行过程中的数据传输效率会成为评价一套软件系统姓能的重要指标。由于网络的数据传输速度是软件运行的客观因素,因此,在这种情况下,程序设计人员首先考虑的减少软件系统运行过程中需要传输的数据量,假如有些数据必须要传输,则软件工程师通常将这些数据在发送端进行压缩,而在数据接收端将数据解压缩,从而主动减少应用系统数据传输量。
JDK环境中提供了多种类型的数据压缩方式,总结起来,利用Java语言可以创建的数据文件压缩格式包括如下类型:
●ZIP格式
●GZIP格式
●JAR格式
在本系列文章中,将分别对利用Java语言创建类型数据压缩文件的方法,以及JDK API中相关对象的结构和成员方法的应用形式进行说明。
第一部分 ZIP压缩格式程序设计方法
当然,在利用JDK API创建压缩数据文件时,不需要具体了解上述ZIP文件定义格式。但是,JDK中定义的多种类型用于进行数据压缩和治理的对象,正是根据上述格式实现数据压缩和解压缩的。
2 JDK API中ZIP压缩格式支持对象
ZIP压缩格式是在Windows操作系统环境中经常应用的压缩格式。ZIP压缩格式的压缩比高、压缩速度快,因而成为利用Java语言定义需要在网络中进行数据传输时,数据压缩格式的首选。
在JDK API的java.util.zip包中,定义了多种类型用于创建和读取zip压缩格式文件的对象,常用对象的定义形式和主要成员方法如下:
●ZipEntry
由于可以将多个文件压缩到同一压缩文件中,因此,JDK API中定义的ZipEntry对象用于标识ZIP压缩文件中每个原始文件的入口。该对象的定义结构为:
对象定义结构:
java.util.zip.ZipEntry
静态成员变量:
CENATT、CENATX、CENCRC … …
这些静态成员变量用于定义在压缩过程中采用的压缩算法。
构造方法:
ZipEntry(String name) 采用字符串类型参数name定义压缩文件中的原始文件入口对象实例。
ZipEntry(ZipEntry e) 采用ZipEntry对象类型参数e定义压缩文件中的原始文件入口对象实例。
成员方法:
long getComPRessedSize() 获取压缩文件的大小
void setCompressedSize(long csize) 设置压缩文件的大小
int getMethod() 获取压缩时采用的压缩算法
void setMethod(int method) 设置压缩算法
long getSize() 获取压缩原始文件的大小
void setSize(long size) 设置压缩原始文件的大小
long getTime() 获取压缩文件入口标识的定义时间
void setTime(long time) 设置压缩文件入口标识的定义时间
boolean isDirectory() 判定该压缩入口标识是否代表目录
String getName() 返回压缩入口标识的名称
●ZipFile
该对象用于从ZIP压缩格式文件中读取压缩原始文件的入口。
对象定义结构:
java.util.zip.ZipFile
静态成员变量:
CENATT、CENATX、CENCRC … …
这些静态成员变量用于定义在压缩过程中采用的压缩算法。
构造方法:
ZipFile(File file) 从File对象代表的压缩文件中读取压缩原始文件。
ZipFile(File file, int mode) 从File对象代表的压缩文件中读取压缩原始文件,并且可以指定ZIP文件读取模式。