使用JavaAPI压缩和解压缩数据

文章作者 100test 发表时间 2007:03:14 17:36:29
来源 100Test.Com百考试题网


许多资料来源中都含有多余数据或对存储信息无用的数据。这常常造成客户机 和服务器应用程序间或电脑间浩如烟海的数据传输。很明显,数据存储和信息传 输问题解决办法是,安装辅助存储装置并扩展现有的通信设备。然而,要做到这 一点,就需要增加组织的运行费用。减轻部分数据存储和信息传输的方法之一是, 以更有效的代码表示数据。本文简要介绍数据压缩和解压缩,以及如何有效地、方便地从JavaTM应用程序内部使用 java.util.zip包压缩和解压缩数据。

虽然 WinZip、gzip和Java ARchive(或 jar)等工具可以用来压缩和解压缩数据,这些工具仍被用作独立 的应用程序。从 Java 应用程序中可以调用这些工具,但并非是简捷有效的解决 方法。在希望迅速地(如在传输到远程机器之前)压缩和解压缩数据的情况下, 尤其如此。本文将:

简要综述数据压缩

描述java.util.zip包

介绍如何使用这些包压缩和解压缩数据

介绍如何压缩和解压缩已序列化的对象以节省磁盘空间

介绍如何迅速压缩和解压缩数据,以提高客户/服务器应用程序的性能

概述数据压缩

文件冗余最单一的类型是字符的重复。例如,下列字符串:

BBBBHHDDXXXXKKKKWWZZZZ

可以更简洁地对本字符串进行编码,方法是以重复字符和代表其重复次数的数 字代替每个重复字符串。因此,上述字符串可以编码为:

4B2H2D4X4K2W4Z

这里的" 4B "表示4个B,而2H表示2个H,等等。以这种方法压缩字符串的编码 方式叫做运行长度编码。

另一个例子,是矩形图像存储。因为是单色位图图像,所以按图表1所示存储。

图表1∶带运行长度编码信息的位图

第二种方法是将图像存为图解元文件∶

矩形11、3、20、5

它表示,该矩形起始坐标是(11, 3),宽度是 20 像素,长度是 5 像素。

矩形图像可以通过计算相等字节的方式,以运行长度编码进行压缩,如下:

0, 40

0, 40

0,10 1,20 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,20 0,10

0,40

上面的第一行表示,位图的第一行由40个0组成。第三行表示,位图的第三行 由10个0组成,继之以20个1、10个0组成,诸如此类。



相关文章


一个Java先行者的追寻之路
JAVARMI简介及实例分析
SCJP试题-SCJPMockExam2
走向J2EE,漫长的道路
使用JavaAPI压缩和解压缩数据
SCJP试题-SCJPMockExam1
Java的模板引擎Velocity初体验
Java12大特色介绍
JAVA题库:最新java试题测试(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛