打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
J2ME下的Zlib/Gzip/Zip压缩相关
一,gzip格式简介
gzip是基于DEFLATE的压缩文件格式。它由10字节的文件头,可选的扩展头,文件体(DEFLATE压缩的数据),和8字节的尾注4个部分组成。现今已经成为Internet 上使用非常普遍的一种数据压缩格式。(http://zh.wikipedia.org/wiki/Gzip)
DEFLATE是同时使用了LZ77算法与Huffman编码的字典型无损数据压缩算法(先用lz77算法进行压缩,然后对其结果再使用 Huffman编码的方法进行压缩)。DEFLATE最初是作为LZW以及其它受专利保护的数据压缩算法的替代版本而设计的。当时那些专利限制了压缩算法的应用,而DEFLATE则不受任何专利所制约。(http://zh.wikipedia.org/wiki/DEFLATE)
LZ77算法通过使用编码器或者解码器中已经出现过的相应匹配数据信息替换当前数据(字典)从而实现压缩功能。(http://zh.wikipedia.org/wiki/LZ77与LZ78)
Huffman编码是一种用于无损数据压缩的熵编码(权编码)算法。该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码。(http://zh.wikipedia.org/wiki/霍夫曼编码)
二,J2ME与 gzip
zlib是使用DEFLATE算法,提供压缩功能的函数库。后来普遍为许多软件所使用,逐渐成为事实上的业界标准。它是一个自由软件,使用 zlib授权。(http://www.zlib.net/)
java4ever提供了一个非常小巧的用于J2ME的gzip解压缩类库,但它不支持压缩。(http://www.java4ever.com/index.php?section=j2me&project;=gzip& amp;menu;=main〈=_en)
jzlib是zlib的Java实现版本。幸运的是,它只需要做简单修改,即可用于J2ME。(http://www.jcraft.com /jzlib/)
J2ME Polish的源码中也提供了一个不错的gzip类库。(http://www.j2mepolish.org)
三,实践
1,将jzlib移植到J2ME
移植非常容易,仅需要将ZinputStream类中的FilterInputStream替换成InputStream即可。
代码可从(http://code.google.com/p/jzlib4me/)获取。其中有一个简单的示范,请仔细查看代码中的 README,跟去其中的描述选择合适的使用方法。
2,使用J2ME Polish提供的gzip类库
在J2ME Polish的de.enough.polish.util包中,提供了一个ZipUtil.java类。使用它可以很方便的进行gzip的压缩与解压。
例如:
ZipUtil.compress(byte[] data);
ZipUtil.decompress(byte[] data);
使用这两个方法即可对data进行压缩和解压缩,并返回结果。
如果操作的数据比较大,可以使用de.enough.polish.util.zip包中的GZipInputStream和 GZipOutputStream对数据流进行压缩和解压
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HTTP请求之gzip压缩知多少
关于web压缩,gzip等
HTTP协议中你必须知道的三种数据格式
IE不支持deflate
gzip压缩算法 - c/c - CSDN技术中心
deflate算法总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服