摘 要
随着人们对数据的大量需求以及计算机使用时间的增加,计算机磁盘上的文件越来越大,越来越多。如何让有限的磁盘空间容纳更多的数据成为需要解决的问题。一方面,高速发展的存储技术以提高磁盘容量来解决这样的需求,但随着网络环境下数据传递的产生以及带宽的限制,大容量数据问题日益突出。在这两种需求的推动下,对数据压缩的需求产生了。人们可以将文件在不改变其本身的条件下,将其以更小的占用空间存储,并且在需要的时候将文件恢复成原有的样子,这就是压缩目的。本论文主要研究文件的无损压缩技术,并简要介绍了文件压缩的分类、几种常用的无损压缩格式和常用的压缩算法。运用LZ77字典算法、懒惰匹配算法和Huffman编码算法,使用Java语言在Jbuilder2006环境下设计了使用GZIP算法对文件压缩与解压缩的实现程序。用户可以根据自己的需求,使用此程序方便地对文件进行压缩或者解压缩操作。
关键词:压缩;解压缩;GZIP;Java
目 录
论文总页数:21页
1 引言 1
1.1 课题背景 1
1.2 国内外现有的研究成果 1
2 压缩与解压缩程序分析 2
2.1 需求分析 2
2.2 使用的算法理论 2
2.2.1 LZ77算法简介 2
2.2.2 Huffman算法简介 3
2.2.3 GZIP算法原理分析 4
2.3 开发环境 4
3 总体设计 4
3.1 程序功能模块 5
3.2 模块分析与流程图 5
3.2.1 压缩模块 5
3.2.2 解压缩模块 6
3.3 程序中各个类的初步定义 7
4 详细设计和实现 8
4.1 压缩的程序流程 8
4.2 解压缩的程序流程 9
4.3 主函数代码 10
4.3.1 gzip压缩模块代码 10
4.3.2 ungzip解压缩模块代码 11
4.4 程序界面设计 12
5 软件系统测试 17
5.1 运行环境 17
5.2 测试方法 17
5.3 测试结果 17
5.3.1 使用程序对txt文件压缩 17
5.3.2 使用程序对bmp图象文件压缩 18
5.3.3 使用程序对doc文件压缩 18
结 论 18
参考文献 19
致 谢 20
声 明 21