作者:五一r
日期:0077140626r
利用Java实现zip压缩解压缩r
(作者: 2000年07月06日1330)r
r
由于网络带宽有限所以数据文件的压缩有利于数据在I
ter
et上的快速传输同时也节r
r
省服务器的外存空间。r
r
Java11实现了IO数据流与网络数据流的单一接口因此数据的压缩、网络传输和解r
r
压缩的实现比较容易下面介绍利用ZipE
try、ZipI
putStream和ZipOutputStream三个Javar
r
类实现zip数据压缩方式的编程方法。r
r
zip压缩文件结构一个zip文件由多个e
try组成每个e
try有一个唯一的名称e
try的r
r
数据项存储压缩数据。r
r
与zip文件有关的几个Java类r
r
类ZipE
tryr
r
publicZipE
tryStri
g
amer
r
ame为指定的数据项名。r
r
类ZipOutputStreamr
r
ZipOutputStream实现了zip压缩文件的写输出流支持压缩和非压缩e
try。下面是它的r
r
几个函数r
r
publicZipOutputStreamOutputStreamoutr
r
∥利用输出流out构造一个ZIP输出流。r
r
publicvoidsetMethodi
tmethodr
r
∥设置e
try压缩方法缺省值为DEFLATED。r
r
publicvoidputNextE
tryZipE
try
ewer
r
∥如果当前的e
try存在且处于激活状态时关闭它在zip文件中写入新的e
try
ewer
r
并将数据流定位于e
try数据项的起始位置压缩方法为setMethod指定的方法。r
r
类ZipI
putStreamr
r
ZipI
putStream实现了zip压缩文件的读输入流支持压缩和非压缩e
try。下面是它的r
r
几个函数r
r
publicZipI
putStreamI
putStreami
r
r
∥利用输入流i
构造一个ZIP输出流。r
r
publicZipE
trygetNextE
tryr
r
∥返回ZIP文件中的下一个e
try并将输出流定位在此e
try数据项的起始位置。r
r
publicvoidcloseE
tryr
r
∥关闭当前的zipe
try并将数据流定位于下一个e
try的起始位置。r
r
程序代码及其注释r
r
下列的程序实现了数据文件zip方式的压缩和解压缩方法。ra
domData函数随机生成r
r
50个double数据并放在doc字符串变量中ope
File函数读取ZIP压缩文件saveFile函数r
r
将随机生成的数据存到ZIP格式的压缩文件中。r
r
importjavautilzipr
r
importjavaawteve
tr
r
importjavaawtr
r
importjavala
gMathr
r
importjavaior
r
publicclassTestZipexte
dsFrameimpleme
tsActio
Liste
err
r
TextAreatextarea∥显示数据文件的多行文本显示域r
r
TextFieldi
fotip∥显示数据文件未压缩大小及压缩大小单行文本显示域r
r
Stri
gdoc∥存储随机生成的数据r
r
lo
gdoczipsize0∥压缩数据文件的大小r
r
publicTestZipr
r
∥生成菜单r
r
Me
uBarme
ubar
ewMe
uBarr
r
setMe
r