毕业设计论文-基于JAVA文件压缩与解压缩实践(含代码)_第1页
毕业设计论文-基于JAVA文件压缩与解压缩实践(含代码)_第2页
毕业设计论文-基于JAVA文件压缩与解压缩实践(含代码)_第3页
毕业设计论文-基于JAVA文件压缩与解压缩实践(含代码)_第4页
毕业设计论文-基于JAVA文件压缩与解压缩实践(含代码)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计 ( 论文 ) 文件压缩与解压缩实践 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期: 文件压缩与解压缩实践 摘 要 随着人们对数据的大量需求以及计算机使用时间的增加,计算机磁盘上的文件越来越大,越来越多。如何让有限的磁盘空间容纳更多的数据成为需要解决的问题。一方面,高速发展的存储技术以提高磁盘容量来解决这样的需求,但随着网络环境下数据传递的产生以及带宽的限制,大容量数据问题日益突出。在这两种需求的推动下,对数据 压缩的需求产生了。人们可以将文件在不改变其本身的条件下,将其以更小的占用空间存储,并且在需要的时候将文件恢复成原有的样子,这就是压缩目的。 本 论 文主要研究文件的无损压缩技术,并简要介绍了文件压缩的分类、几种常用的无损压缩格式和常用的压缩算法。运用 典算法、懒惰匹配算法和 码算法, 使用 言在 境下 设计了使用 法对文件压缩与解压缩的实现程序 。 用户可以根据自己的需求,使用此程序方便地对文件进行压缩或者解压缩操作 。 关键词: 压缩;解压缩; s of on to to a On of of in a of is of is a a s is of of A or to 目 录 论文总页数: 21 页 1 引言 .题背景 .内外现有的研究成果 . 压缩与解压缩程序分析 . 求分析 . 用的算法理论 . 法简介 . 法简介 . 法原理分析 . 发环境 . 总体设计 . 序功能 模块 .块分析与流程图 . 压缩模块 . 解压缩模块 . 序中各个类的初步定义 . 详细设计和实现 . 缩的程序流程 . 压缩的程序流程 . 函数代码 . X 缩模块代码 . X 压缩模块代码 . 序界面设计 . 软件系统测试 .行环境 .试方法 .试结果 . 使用程序对 件压缩 . 使用程序对 象文件压缩 . 使用程序对 件压缩 . 论 .考文献 . 谢 . 声 明 . 错误 !未定义书签。 1 引言 题背景 随着科学技术的进步,信息技术越来越广泛地应用到社会的各个行业和领域,互联网深刻地改变着人们的生活方式,推动着人类文明的进步。伴随着信息技术的普及和发展,互联网技术覆盖了社会政治、经济、文化、生产的各个领域 ,这种普及日常生活和工作更加的方便、文化娱乐方式更加的多样化 。 但是,在信息技术的飞速发展下,文件的信息量不断增加的背景下,文件的存储和拷贝要求能够保持数据的意思不变的情况下缩小容量,这就需要有压缩与解压缩来实现这个过程。本论文通过对一种压缩与解压缩方法的实践,对这种算法的实现过程进行研究。 内外现有的研究成果 文件压缩格式现在已有许多种,最流行的有如下几种: 们可以利用 件进行解压、释放等操作,还可以用它来处理 多种不同格式的压缩文件,从而大大地 方便了用户的操作。 一种高效快速的文件压缩格式,但不被大多数文件压缩程序支持,在 处理 式文件的最好工具。 曾经红极一时的压缩软件 缩而成的文件格式,它具有功能强大、压缩率高等优点。到了现在的 代,它已经没有了往日的辉煌。 是 8 新增的一种特殊压缩文件格式,主要用于对有关软件安装盘中的文件进行压缩,其特点是压缩率非常高 (可能是目前最高的 ),但一经压缩就不能再进行任何增加、删除、替换等修改,也就是说它的压 缩包具有 “ 只读 ”属性。我们也可使用 缩包进行操作。 字编码方式,它们原本是 统中使用的一种编码方式,后来被改写到 ,我们在传送中文邮件时只须事先使用该方式进行编码,此后就能顺利通过只能处理 7位编码的邮件服务器,从而解决了汉字的传输问题。 种新式的压缩程序,压缩比很高。 以上的压缩格式是可逆的,在解压缩之后,可以将被压缩的文件还原成以前未压缩的文件。另外还有一种不可逆的压缩格式,如 音频、视频、图像格式的文件都采用了这种压缩技 术,从理论上来说它们也应该算压缩文件,不过它们所采用的压缩方式与前面讲的并不相同,这里简单地介绍一下: 名为 是一个在国际 标准组织 (从事静态影像压缩标准制定的委员会。它制定出了第一套国标静态影像压缩标准: 0918是我们俗称的 。 由于 良的品质,使得它在短短的几年内就获得极大的成功,目前网站上 80%的影像都是采用压缩标准。 000:正式名称为 “5 444” ,同样是由 织负责制定。 000 与传统 大的不同,在于它放弃了 采用的以离散余弦转换为主的区块编码方式,而改以小波转换为主的多解析编码方式。其压缩率比 0%左右,同时支持有损和无损压缩,无损压缩对保存一些重要图片十分有用。 称是 ,是一种高性能的声音压缩编码方案,它可以做出超小 “ 体积 ” 的音乐文件,大小只是原始音频数据的 1/10 到 1/12。但人耳听起来,效果却没有太大差异。 态图像专家组 )的缩写。现在使用的有 4 个版本: 2 压缩与解压缩程序分析 求分析 文件的压缩与解压缩,要能方便地进行,要完成的功能包括压缩功能,解压缩功能,选择文件路径,选择操作方案,选择新文件保存路径 。 此程序还要在压缩成功后显示被压缩文件的大小,并对非法操作给出提示。 用户可以选择文件进行压 缩或解压缩操作,并选择生成保存路径,默认的保存路径为原文件目录,压缩的生成文件以原文件加 缀命名,在解压缩操作中, 若输入文件不是 式的压缩文件,则提示 件格式不对。 程序的基本设计原则有:方便性原则、功能实用性原则和开放性原则等。程序设计时采用较好的压缩技术,能保证文件压缩的压缩比和可恢复性,确保程序有较长的生命周期。 本程序的总体目标是实现文件压缩与解压缩的便捷操作,因此需要有便捷的操作界面。 用的算法理论 这一算法是由 1977 年提出,所以命名为这种算法模型也被称为 “ 滑动字典 ” 模型或 “ 滑动窗口 ” 模型。 压缩的模型如图 1: 图 1 压缩中的 法模型图 在最远匹配位置和当前处理位置之间是可以用来查找匹配的 “ 字典 ” 区域,随着压缩的进行, “ 字典 ” 区域从待压缩文件的头部不断地向后滑动,直到达到文件的尾部,短语式压缩也就结束了。 解压缩的模型如图 2: 图 2 解压缩中的 法模型图 法简介 夫曼 /赫夫曼 /霍夫曼)在 读博士学位期间于 1952 年提出了一种从下到上的编码方法,现在被称为 码,它是一种统计最优的变码长符号编 码,让最频繁出现的符号具有最短的编码。 码的过程具体编码步骤为: (1)将符号按概率从小到大顺序从左至右排列叶节点; (2)连接两个概率最小的顶层节点来组成一个父节点,并在到左右子节点的两条连线上分别标记 0 和 1; (3)重复步骤 2,直到得到根节点,形成一棵二叉树; (4)从根节点开始到相应于每个符号的叶节点的 0/1 串,就是该符号的二进制编码。 由于符号按概率大小的排列既可以从左至右、又可以从右至左,而且左右分枝哪个标记为 0 哪个标记为 1是无关紧要的,所以最后的编码结果可能不唯一,但这仅仅是分配 的代码不同,而代码的平均长度是相同的。 编码式压缩利用各个单字节使用频率不一样的倾向,使定长编码变为不定长编码,给使用频率高的字节更短的编码,使用频率低的字节更长的编码,起到压缩的效果。由于 码为根结点到叶子结点路径上的 0 和 1的序列,而一个叶子结点的路径不可能是另一个叶子结点路径的前缀,因此一个 码不可能为另一个 码的前缀,这就保证了 码是可以区分的。由于用 法建立起来的树总是一棵最优二叉树,因此这又让 码能够实际应用到压缩 中。 用 法进行压缩。 及图形格式 用的压缩算法也是 法。 于要压缩的文件,首先使用 法的一个变种进行压缩,对得到的结果再使用 码的方法( 据情况,选择使用静态 码或者动态 码)进行压缩。 法和 就是 法的根本实现方法, 也就是 压缩原理 。 懒惰匹配( 是 对 法的改进,实现过 程如下: 在压缩过程中,对于当前字节开始的串,寻找到了最长匹配之后, 不立即决定使用这个串进行替换。而是看看这个匹配长度是否满意,如果匹配长度不满意,而下一个字节开始的串也有匹配串的话,那么 找到下一个字节开始的串的最长匹配,看看是不是比现在这个长。这就是懒惰匹配。 如果比现在这个长的话,将不使用现在的这个匹配。如果比现在这个短的话,将确定使用现在的这个匹配。发现第二次匹配的匹配长度大,就不使用第一次的匹配串。如果直接使用第一次匹配的话,有可能将错过更长的匹配串。 在满足懒惰匹配的前提条件下 ,懒惰匹配不限制次数,一次懒惰匹配发现了更长的匹配串之后,仍会再进行懒惰匹配,如果这次懒匹配,发现了更长的匹配串,那么上一次的懒匹配找到的匹配串就不用了。 进行懒惰匹配是有条件的。进行懒惰匹配必须满足两个条件,第一,下一个处理字节开始的串,要有匹配串,如果下一个处理字节开始的串没有匹配串的话,那么就确定使用当前的匹配串,不进行懒惰匹配。第二,当前匹配串的匹配长度,满意,也就是当前匹配长度小于 固定的压缩级别下,有固定的值)。 发环境 使用 行程序开发。 一个可视 化 发工具。它是在 台上开发商业应用程序、数据库、发布程序的优秀工具。它支持以程序员可以快速的转换企业版 用程序。 使用此开发工具可以实现程序的可视化。 3 总体设计 系统总体结构设计是系统设计过程中及其重要的一步,对系统的技术层次,开发过程,功能实现及开发成本方面具有重大的影响。系统总统结构设计应尽可能的考虑人机关系,环境条件以及算法的可行性等的联系,使系统每个部分都能协调适应。 本实验论证是基于 法理 论体系的,因此使用的压缩方法是参照 法的。 法理论体系主要包含三个内容: 法, 法,懒惰匹配算法。因此在设计过程中要注意如何实现这三个算法并且将其结合起来。 序功能 模块 根据设计思路, 文件的压缩和解压缩是两个相反的操作, 程序可分为 缩模块。 现在设计出 功能 结构 图如图 3。 图 3 功能结构图 块 分析与流程图 分析程序的总体流程图可 以以图 4 来 表示: 图 4 总体流程图 缩模块 压 缩模块的实现流程为: ( 1)打开要压缩的文件,使用字典算法扫描文件统计文件使用的字符集并统计每个字符 集 的使用次数。 ( 2)根据扫描的结果构建文件字符集的 。 ( 3)由文件的 求字符集中各字符的编码,形成 码表。 ( 4)建立压缩文件。 Y N 压缩与解压缩程序 压缩 程序 解压缩程序 ( 5)将要压缩文件的字符集大小和文件的大小写入压缩文件。将字符集的写入压缩文件,供解压缩时使用。 ( 6)从文件中读取一个字符 集 ,查 码表,得到它的 码。按位流放入压缩文件的写缓冲区。 ( 7)检查压缩文件的写缓冲区, 如果已满一个字节,写入压缩文件,如果要压缩的文件没有达到文件的结尾,转到步骤 6。 ( 8)关闭要压缩文件和压缩文件 画出流程图 如图 5: 图 5 图 5 压缩模块流程图 压缩模块 解压缩模块的实现流程为: ( 1)打开压缩文件,读取字符集字符个数和文件的字节数。读入文件的。 ( 2)建立解压缩文件。 ( 3)读入一个字节的编码,用 得到字符,将字符写入解压缩文件,如果编码已用完,就读取下一个字节,如此重复,直到读取压缩文件的全部编码。 ( 4)关闭压缩文件和 解压缩文件。 画出流程图 如图 6: 图 6 解压缩模块流程图 序中各个类的初步定义 为了完成此程序,应当设计 一个接口, 十四 个类,和 二 个异常处理类 。其中 接口: 类: 异常索引: 各个类的 简单 介绍如表 1: 表 1:程序各个类的作用 条目 类型 描述 口 被类 现的接口 使用 法来计算 目 一个输入流,保存着被读取数据的 一个输出流, 保存着被读取数据的 使用 法来计算 目 使用 缩类,支持通常的压缩方式,程序核心类 一个输出过滤流,用来压缩 式数据 一个输入过滤流,读取 式压缩数据 一个输出过滤流,读取 式压缩数据 使用 缩类,支持通常的解压方式,程序核心 类 一个输入过滤流,用来解压 式的压缩数据 存储 目 从 件中读取 目 一个输入过滤流,用来读取 式文件中的文件 一个输出过滤流,用来向 式文件口写入文件 常类 抛出一个数据格式错误 常类 抛出一个 件 4 详细设计和实现 的程序流程 压缩程序的实现过程中,涉及到很多类的调用,除了压缩有关的类,还有于 的调用不考虑的情况下,各个压缩功能类的调用流程(如图 7): ( 1)主程序 用输出过滤流 取 式压缩数据,压缩开始。 ( 2) 用 计算 数目。 ( 3)在 回结果后, 用 缩类来进行压缩。在 的调用过程中,实现了对数据的压缩字符集确定与编 码,也就是实现了 法、懒惰匹配与 码的结合。 ( 4)建立压缩文件,调用 压缩 式数据 。 图 7 压缩类的调用 顺序图 这些过程的操作是不能离开 的,所以实现这些过程的前提是要有数据流输入,也就是调用 开需压缩文件作为文件输入流;在以上的流程完毕之后,调用 建立压缩文件输出流,最终形成压缩后的文件。 流程 在解压缩的实现过程中,各个类的调用关系(如图 8): ( 1)主程序 用 取 式压缩数据,解压缩开始。 ( 2) 用 计算 数目。 ( 3)在 回结果后,调用 存被读取数据的时调用 行解压缩。 ( 4)在 压 缩过 程中 , 如果 数据 格式 错 误, 则调 用果没有数据格式错误,则调 用 式的压缩数据。 图 8 解 压缩类的调用 顺序图 码 压缩模块要完成的就是将文件读入以后进行压缩,再将压缩后的数据写入一个新的文件,其部分代码如下: =2) ); ); /打开需压缩文件作为文件输入流 ); /建立压缩文件输出流 ); /建立 024;/设定读入缓冲区尺寸 ( != , ;/关闭流 ,必须关闭所有输入输出流 ; ; e) e); 压缩模 块 代码 解压缩模块要完成的就是将文件读入以后进行解压缩,再将解压缩后的数据写入一个新的文件,其部分代码如下: =2) ); ); /建立 ); /建立 /建立解压文件输出流 ); 024; (, != , ; ; ; e) e); 为了让用户能便捷地进行压缩与解压缩的操作,还要对程序加入一个可视化界面。其外观如图 9: 图 9 用户首先选择需要操作的文件,若要将被操作文件的生成文件保存到原文件所在目录,可以跳过选择输出文件夹操 作。如图 10: 图 10 择文件 界面 在选择好文件以后,用户根据自己的需要,点击压缩或者解压按钮,操作便完成。 其部分代码如下: 请先选择文件 ; ; ; * * to ( ; ; ; ); 80,240); ; ; 75, 995, 953, 22, ; 22, 21); ; 82, 910, 419, 64, ; 80, 28); ; 31, 19); ; 文件 ); ; 打开 ); ; ; ; 退出 ); ; 38, 720, 716, 530, ; ; 3, 21); ; 38, 361, 716, 170, ; ; 3, 21); ; 39, 164); e) ; /* (非 * */ / 动生成方法存根 if(= ; if( +/+ + g=, /+/+); if(= ; if( +/+); ); if(0) g=, 状态:解压成功 ); 状态: ); if(= ; /); if(= ; /); if(= )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论