字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍
1、ZIP、 GZIP 计算机文件压缩算法,JDK中java.util.zip.*中实现。主要包括ZipInputStream/ ZipOutputStream、GZipInputStream/ZipOutputStream。
2、QuickLZ是一个号称世界压缩速度最快的压缩库,并且也是个开源的压缩库,其遵守 GPL 1, 2 或 3协议。
3、Snappy是一个 C++的用来压缩和解压缩的开发包,其目标不是最大限度压缩,而且不兼容其他压缩格式。旨在提供高速压缩速度和合理的压缩率。在64位模式的 Core i7 处理器上,可达每秒250~500兆的压缩速度。在 Google 内部被广泛的使用,从 BigTable到 MapReduce以及内部的RPC 系统。
4、LZF采用类似lz77和lzss的混合编码,针对字符串压缩算法。
5、JZLIB是纯java的开源解压、压缩包,与JDK中ZLIB类似。
预选解压缩类库使用介绍--ZIP
压缩
String s = “这是一个用于测试的字符串”;
ByteArrayOutputStream out = new ByteArrayOutputStream();
ZipOutputStreamzout = new ZipOutputStream(out);
zout.putNextEntry(new ZipEntry("0"));
zout.write(s.getBytes());
zout.closeEntry();
byte[] compressed = out.toByteArray(); --返回压缩后的字符串的字节数组
解压
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(compressed);
ZipInputStreamzin = new ZipInputStream(in);
zin.getNextEntry();
byte[] buffer = new byte[1024];
intoffset = -1;
while ((offset = zin.read(buffer))!= -1) {
out.write(buffer, 0, offset);
}
byte[] uncompressed = out.toByteArray(); --返回解压缩后的字符串的字节数组
预选解压缩类库使用介绍--GZIP
压缩
String s = “这是一个用于测试的字符串”;
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZipOutputStream gout = new GZipOutputStream(out);
gout.write(s.getBytes());
byte[] compressed = out.toByteArray(); --返回压缩后的字符串的字节数组
解压
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(compressed);
GZipInputStreamgzin =newGZipInputStream(in);
byte[] buffer = new byte[1024];
intoffset = -1;
while ((offset = gzin.read(buffer)) != -1) {
out.write(buffer, 0, offset);
}
byte[] uncompressed = out.toByteArray(); --返回解压缩后的字符串的字节数组
预选解压缩类库使用介绍--QuickLZ
压缩
String s = “这是一个用于测试的字符串”;
--Level 1
byte[] compressed =QuickLZ.compress(s.getBytes(), 1); --返回压缩后的字符串的字节数组
--Level3
byte[] compressed =QuickLZ.compress(s.getBytes(), 3); --返回压缩后的字符串的字节数组
解压
byte[] uncompressed =QuickLZ.decompress(compressed ); --返回解压缩后的字符串的字节数组
预选解压缩类库使用介绍--Snappy
压缩
String s = “这是一个用于测试的字符串”;
byte[] compressed =Snappy.compress(s.getBytes()); --返回压缩后的字符串的字节数组
解压
byte[] uncompressed =Snappy.uncompress(compressed ); --返回解压缩后的字符串的字节数组
预选解压缩类库使用介绍-- LZF
压缩
String s = “这是一个用于测试的字符串”;
byte[] compressed = LZFEncoder.encode(s.getBytes()); --返回压缩后的字符串的字节数组
解压
byte[] uncompressed = LZFDecoder.decode(compressed ); --返回解压缩后的字符串的字节数组
预选解压缩类库使用介绍-- JZLIB
压缩
String s = “这是一个用于测试的字符串”;
ByteArrayOutputStream out = new ByteArrayOutputStream();
DeflaterOutputStreamdout = new DeflaterOutputStream(out);
dout.write(s.getBytes());
dout.close(); --需要先关闭
byte[] compressed = out.toByteArray(); --返回压缩后的字符串的字节数组
解压
ByteArrayOutputStream out= new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(compressedStr);
InflaterInputStream input = new InflaterInputStream(in);
byte[] buffer = new byte[1024];
intoffset = -1;
while ((offset = input.read(buffer)) != -1) {
out.write(buffer, 0, offset);
}
out.close(); --需要先关闭
byte[] uncompressed = out.toByteArray(); --返回解压缩后的字符串的字节数组
转自:http://blog.csdn.net/mcpang/article/details/41141261
字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍的更多相关文章
- [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...
- (转)linux下压缩和归档相关命令tar,zip,gzip,bzip2
压缩包也有两种形式,一种是tar.gz包(.tgz包也是这种),一种是tar.bz2包. tar.gz包的解压方法:tar zxvf [PackageName].tar.gz tar.bz2包的解压方 ...
- Linux中gzip、bzip2、zip、unzip、tar使用介绍
压缩解压缩命令介绍.gz 压缩为gzip文件.bz2 压缩为bzip2文件.tar 打包文件,将多个文件合并成一个目录.tar.gz 先打成tar包,再压缩为gzip文件.tar.bz2 先打成tar ...
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...
- java-a实现压缩与解压缩(zip、gzip)
zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还 ...
- C# 解压缩工具类GZip
using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using ...
- java解压缩.gz .zip .tar.gz等格式的压缩包方法总结
1..gz文件是linux下常见的压缩格式.使用 java.util.zip.GZIPInputStream即可,压缩是 java.util.zip.GZIPOutputStream public s ...
- java实现zip,gzip,7z,zlib格式的压缩打包
本文主要介绍的是通过使用java的相关类可以实现对文件或文件夹的压缩. zlib是一种数据压缩程序库,它的设计目标是处理单纯的数据(而不管数据的来源是什么). 7z 是一种新的压缩格式,它拥有目前最高 ...
- Python递归解压缩多级.zip压缩包
参考如下代码(from:https://stackoverflow.com/questions/36285502/how-to-extract-zip-file-recursively-in-pyth ...
随机推荐
- 报表研究之PPT篇
PPT是一种说服力,是展示,也是营销. PPT写的好,会有事半功倍的效果. 写好PPT,重要的有以下几点. 1.1页1主题,1行1观点 2.善用图形,图成逻辑 3.微软雅黑最佳,其余字体配搭 4.色同 ...
- jekyll+github搭建个人博客总结
jekyll+github搭建个人博客 经过一天多的折腾,终于算是搭建好了自己的个人博客,看到有些社区评论说:在windows下用jekyll搭建静态博客,简直就自讨苦吃,但是都到一半了,有什么办法呢 ...
- JVM 知识点总览 - 高级 Java 工程师面试必备
在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...
- 51nod 1202 线性dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1202 1202 子序列个数 题目来源: 福州大学 OJ 基准时间限制:1 ...
- RecycleView出现折叠效果--第三方开源--SectionedExpandableGridRecyclerView
下载地址:https://github.com/ddwhan0123/SectionedExpandableGridRecyclerView/archive/master.zip 具体见源码
- xss攻击的分类
1.反射型XSS 原理: 通过在页面上植入恶意链接,诱使用户点击,执行js脚本,所谓反射型XSS就是将用户输入的数据(恶意用户输入的js脚本),“反射”到浏览器执行. 实例: php源码: <? ...
- svn默认地址老发生改变,记下默认路径
C:\Users\Administrator\AppData\Roaming\Subversion
- bzoj 2013: A huge tower 数学
题目: 有\(N(2\leq N\leq 620000)\)块砖,要搭一个\(N\)层的塔,要求:如果砖\(A\)在砖\(B\)上面,那么\(A\)不能比\(B\)的长度\(+D\)要长.问有几种方法 ...
- UI及物体渲染顺序
1.决定UI渲染在所有物体前,ZTest Always,Canvas中的RenderMode影响该值. 2.都是ZTest Always 时影响覆盖的因素: 父子及先后关系: 渲染队列: sortin ...
- JSF通过超链接传递参数到控制层
JSF通过超链接传输数据到控制层可以分为三个步骤: 1.首先将数据加入到超链接中.通过<h:link>标签加入一个超链接,然后加入<f:param>标签加入参数.示例代码如下: ...