【Java开源代码栏目提醒】:本文主要为网学会员提供“Java编程实现文件压缩 - 期刊论文”,希望对需要Java编程实现文件压缩 - 期刊论文网友有所帮助,学习一下!
aa Jv 编 程 实 现 文件 压 缩 口 吴 代 文 渭 ( 南师范学院传媒 工程 系 陕西 ·渭南 10 0 740 ) 摘 i 要 : 在讨论 实现 z 针对 J K提供 的 ZP包在压缩 中文文件时出现的乱码 问题 , 出 p数据压 缩
常用 类后 , D I 提 I 包源
代码和利用An包 两个 解决乱码 问题 的方法 , 了修 改Z P t n包 最后利用 A t 实现 了一个压 缩中文文件夹的类 , nar n p之 z 其 综 合 性 能介 干 wir 和 wi i 问。
aa n na n p I z 关 键 词 :Jv A t wirr wi i Z P算 法 文 件 压 缩 P9 中图分类号 :T 3 文献标识码 :A 0 73 7 ( o o) 10 70 文章编号:10 -9 3 2 l O -6 -2 Jv 针 对各 种 不 同 的 事 务领 域 为用 户 提 供 了许 多 易 用 且 2 压 缩 具有 中 文 名称 的文 件 aa功 能 强 大 的 类 , 文 件 压 缩 和 解 压 方 面 Jv 提 供 了两 种 最 常 在 aa aa ncd 在 Jv 应 用 程 序 中 ,对 文 字 的 编 码 是 以 u io e为基 础 I I 。
G I I 压 也用 的 压 缩 算 法 GZP和 ZP Z P算 法 相 对 简 单 且 没 有 Z P 的 , 缩 的 文 件 名 , 是 以 u i d 编 码 的 , 而 , 现 今 市 o nc e来 然 在 下面主要讨论 ZP算法。
算法使用范围广 , I 面上的大部分压缩软件 , p n i wirr 不支持 u i d 比如 wiz 、 na 等, nc t oe i 据 压 缩 常 用 类 l 实现 zp数 的编码方式 , aa 因而用 Jv
软件压缩后的 中文文件名显示 出来 Jv . 实现 了 I 数 据 流 与 网 络 数据 流 的 单一 接 口, aa 11 /O 因 是乱码 。
要解决在压缩 中文文件时 出现 的乱码
问题 ,可通过 此 数 据 的压 缩 、 一个 zp
网络 传 输 和 解 压缩 的实 现 比较 容 易, i文 以 下两 种 方 式 解 决 。
nr件 由 多个 e t 每 nr 一 个 唯 一 的 名称 ,nr 的 数 2 1修 改 ZI y组成 , 个 ety有 ety . P包源 代 码 i a a类 是 据项存储
压缩数据 。
实现 zp数据压缩两个主要 Jv i p tt m类来完成 , Ou e 对文件 的压缩是通过 zp tusra 通过修 ZiE t p nr e y和 ZiOup t t a 。
p tuSr m 可以对中文文件名进行处理。
改这两个类 的编码方式 , 。
· 类 Z p nr y iE t 从 J 的 s . p 得 zp up tt a a a 代 码 ( 常 DK ci rz 取 i0 tuSr mJV 源 e 通 p bi Z p nr( t n a ) u l i t Sr g me; c E y i n DK , e a N iOuptt m. a 在 J 的 安装 目录 下 ) 另 存 为 C Z p tuSra jv 。
a 为 n me 指 定 的数 据 项 名 。
s 将 l 名称 改 为 C iO tuSra 构 造 修 改源 代 码 , Cas e NZp up tt m, · 类 Zp tuSra iOu tt m p e 函数 名 称 也 要更 改 。
加 成 员 变量 , 来记 录 编 码 方 式 。
r ae 增 用 v Pi t zp up tt a 实 现 了 zp 缩 文件 的 写 输 出流 , 持压 Sr ge cdn = U F 8 ; i0 tuSr m e i压 支 i g tn n o i ” T -” 增加一个新的构造函数,在实例化 nr y 缩和非压缩 e t 。
下面是它的几个函数: 时可 以指 定 编 码 方 式 。
p biZ p tuSra Oup tt a u) u l iOup tt m( tuSr m o t c e e ; c p bi NZiOup tte m ( t uSra o t tige c ‘ ul C p t uSra Oup tte m u, r n o S n u构 I ‖利 用 输 出流 o t 造 一 个 ZP输 出 流 。
i { g dn ) u l v i eMeh dit h d ; c me p bi odst to (n to ) s p r( u,n w fae De ae.DE AUL COM — u e o t e De tr【 f tr l l F 〕 nr y 缺 FAE ‖设 置 e t 压 缩 方 法 , 省 值 为 DE L T D。
R SO t e ) r ; P ES I N, u ) u l od uNetnr Zp t e e; c y E y p bi v i p t xE t ( i nr n w ) e De a t f t r r e D l us s f ul e a e =tu ; nr y 关 在 i ‖如 果 当 前 的 e t 存 在 且 处 于 激 活状 态 时, 闭它 , z p h s c d n = n o ig e t i.n o ig e c d n ; nr 并 y nr y文 件 中 写 入 新 的 et , 将 数 据 流 定 位 于 et 数据 项 的起 始 } 压 eMeh d指 定 的方 法 。
位 置 , 缩 方 法 为 st to 找 到 b t〔n me ye= eU F B ts . me; L 处 ) ye】 a B tsg t T 8 ye( n )( 两 ea S , 都 uNetn 对 于 要 加 入 压 缩档 的每 一 个 文件 , 必须 调 用 p t xE - 对 它 修 改如 下 :r , y( iE t y iE tt ) 并 将 其 传 递 给 一 个 Zp nr 对象 。
Zp nr 对 象 包 含 y ye】 a B t n l s ; b t〔nme ye= ul :使 3 i文了 一个 功 能全 面 的接 1 , 用 它 可 以获 得 和 设 置 Z p 件 内那 y r t { y nr 入 上 名个特 定 的 E t ( 口) 能够 接 受 的 所有 数 据 : 字 、压缩 后 和 ( . go f hs n o i t p r e . as U F 8 ) Ca q ( i ti e c dn . Up e s 0 e u l “ T - ”) 压缩前的长度、日期 、 C 校 验 和 、 外字 段 的数 据 、 释 、 CR 额 注 压 s nme ye= eU F B tse a ) n a B t gt T 8 ye(. me; 缩方法, 。
以及 它 是 否 为 一 个 目录 入 口等 。
le es — — 云 00年 期 下 斟协 论 I ·2 l 第 1 ( )— — a Bt s . m . B tshs no i ; n e t . g nme ye=e a egt ye( ie cdn ) Fl n uSra n=nw Fl n uSra ( ; iIp tt m f e e i e i lp tt m f e e ) } ye〕 u= e ye12 〕/ / bt〔b fnw b t〔04;设 定读 入缓 冲 区尺 寸 a ( xe t e ) c o y cthE cpinb tE { n m itnu ; a B tsg t 8 ye( nme; UT e n me ye= e F B ts .a ) yt o . i l bs) e u pn n S s m. t r t (ae; ) hl ( m= n edb f ! 1{ / 文 件 未 读 完 e n i r = w i ( u f . a (u ) .) /如果 . ah n 包22 利 用 Ap c e项 目 中的 a t o t reb f , m) u. i(u, h ; w t Ou / /写入缓冲数据 ah n包来压缩中文 也可 以利用
开源 的 Apce项 目提供的 at ) 下载 U LN ̄N ht:at pce r/下载 at名称 的文件 , R p/ a t / n. ah .g, o n源 f .o e ; nl ) i c s( pc e - 7 -r z , a I. ci n t r文 件 aah— t .0s .p 解 压后 在 An 的 og包 里 有 实现 }iz aa p算法 的全部 jv 源文件,利用 i o r. ah. os i. mp  ̄oga ceo lz } p t .p ) At I命令导入这些类文件 即可。
n 包提供 的 ZP压缩类解决了压 } 缩中文名称文件时的乱码问题。
n 包实现的类 my 3
程序 测 试 和 结 论 以下为用 at -ip y i 的类方法 z Flz ,利用 m zp类 ii p e即可实现 中文文件夹 的压 42 G,52内存 的微机上测试,得出本文利用 6 通过在 P . 1 缩。
aa zp同 izp irr Jv 编 写 的 压 缩 程 序 my i w ni 和 wna 在 压 缩 时 间和 mp r o g a a h . l.i .; oi o t r .p c et o szp * .