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();   --返回解压缩后的字符串的字节数组

字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍相关推荐

  1. 字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)性能对比

    测试说明: 1.版本: ZIP.GZIP :JDK1.6版:QuickLZ: 1.5.0 final:Snappy:1.1.1.6 LZF:1.0.3:JZLIB:1.1.3 2.数据来源:从测试数据 ...

  2. AS3的一些压缩解压缩类库(AS3 ZIP、AS3 GZIP等等)

    原文链接:AS3的一些压缩解压缩类库(AS3 ZIP.AS3 GZIP等等) 在现在开发的游戏中,由于战斗数据比较大,所以尝试对战斗数据进行压缩,然后输出到客户端flash端再解压. Google到一 ...

  3. Linux中压缩、解压缩(tar/zip/bzip2/gz/gzip/zip)

    源码包一般都是以压缩形式存储的,所以,在获得软件包之后,要进行解压缩.  压缩包也有两种形式,一种是tar.gz包(.tgz包也是这种),一种是tar.bz2包.  tar.gz包的解压方法:tar ...

  4. android shell 解压zip,Android解压缩ZIP / GZIP数据(基于InflaterInputStream实现)

    在实际的项目代码使用过程中,发现如果用Java类库标准指定的GZIPInputStream读取压缩数据解压不能稳定工作,原因不明.反而使用InflaterInputStream可以替代GZIPInpu ...

  5. Sprintboot redis 采用gzip和Snappy compress压缩数据

    1 前言 怎么使用和结合Sprintboot + redis ,可以参照我前面的文章:https://blog.csdn.net/zzhongcy/article/details/102584028 ...

  6. 字符串—解压缩(C语言)

    题目:有一种简单的字符串压缩算法,对于字符串中连续出现的同一个英文字符,用该字符加上连续出现的次数来表示(连续出现次数小于3时不压缩),例如,字符串aaaaabbbabaaaaaaaaaaaaabbb ...

  7. Java实现将字符串进行Base64跟GZip结合解密 Java实现Base64 + GZIP解密处理并且输出明文字符

    解密前的字符: H4sIAAAAAAAEAH1RzUrDMAB+lZHzNvKftLeyTfB3Y5vooVCyNRvFrS1deqhj4NWLZ8HH8KKgbzMU38I0RRgiQsjh++P7 ...

  8. zip gzip 7z 简单比较

    待压缩文件: 线上服务日志文件: $ du -h logs     1.2G    logs/41     1.2G    logs/42     2.3G    logs zip压缩: $ time ...

  9. 华为笔试:字符串解压缩

    将一段压缩后的字符串解压缩,并且排序输出 解压规则: 每个字符串后面跟随一个数字,表示这个字符串的重复次数.例如,"a5"解压后的结果为"aaa;"abc3&q ...

最新文章

  1. 2018-2-28 Linux学习笔记
  2. 使用NeMo快速完成NLP中的信息抽取任务 | 英伟达NLP公开课
  3. 【repost】JavaScript Scoping and Hoisting
  4. 外部中断器1C语言程序,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  5. 学习三分 (概念 + 模板 + 例题:曲线)
  6. 解决Ubuntu系统终端运行python文件报错“ImportError/ModuleNotFoundError:No Module named xx”
  7. 下班搜包被诉 苹果支付近3000万美元与加州门店员工和解
  8. java 多线程callable_java 多线程-实现Callable接口
  9. Hadoop系列之OutputCollector
  10. Bailian3754 字符环【字符串】
  11. UnityShader16:点光源和聚光灯
  12. 串口发送字符串到串口软件
  13. Matlab学习10-图像处理之傅里叶变换
  14. Linux中GoogleChrome谷歌浏览器安装好了打不开怎么办?
  15. 火星探险问题 网络流
  16. css样式的补充:鼠标悬停字体变大和改变颜色
  17. [解决问题]Android Studio报错:some kotlin libraries attached to this project were compiled with a newer kot
  18. 手绘vs码绘 动态对比
  19. LTE信令流程——位置更新
  20. [Python] 散点图(二维散点图、三维散点图、散点图矩阵)

热门文章

  1. 【MediaWiki之windows安装】MediaWiki创建与基础使用指南
  2. 数字电路技术基础(三)
  3. Asp.Net Core 2.1 取消HTTPS配置
  4. java map详解
  5. 北京骑行者,改动的不只是通勤方式
  6. 第七章 线程的活性故障--《java多线程编程实战指南-核心篇》
  7. c++/qt/opencv实现魔方复原【娱乐】
  8. 断言(assertion)的简介
  9. 传智java测试题答案_传智播客Java基础第一阶段习题
  10. ubuntu 18.04 设置开机启动脚本