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)介绍的更多相关文章

  1. [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/    索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...

  2. (转)linux下压缩和归档相关命令tar,zip,gzip,bzip2

    压缩包也有两种形式,一种是tar.gz包(.tgz包也是这种),一种是tar.bz2包. tar.gz包的解压方法:tar zxvf [PackageName].tar.gz tar.bz2包的解压方 ...

  3. Linux中gzip、bzip2、zip、unzip、tar使用介绍

    压缩解压缩命令介绍.gz 压缩为gzip文件.bz2 压缩为bzip2文件.tar 打包文件,将多个文件合并成一个目录.tar.gz 先打成tar包,再压缩为gzip文件.tar.bz2 先打成tar ...

  4. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  5. java-a实现压缩与解压缩(zip、gzip)

    zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还 ...

  6. C# 解压缩工具类GZip

    using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using ...

  7. java解压缩.gz .zip .tar.gz等格式的压缩包方法总结

    1..gz文件是linux下常见的压缩格式.使用 java.util.zip.GZIPInputStream即可,压缩是 java.util.zip.GZIPOutputStream public s ...

  8. java实现zip,gzip,7z,zlib格式的压缩打包

    本文主要介绍的是通过使用java的相关类可以实现对文件或文件夹的压缩. zlib是一种数据压缩程序库,它的设计目标是处理单纯的数据(而不管数据的来源是什么). 7z 是一种新的压缩格式,它拥有目前最高 ...

  9. Python递归解压缩多级.zip压缩包

    参考如下代码(from:https://stackoverflow.com/questions/36285502/how-to-extract-zip-file-recursively-in-pyth ...

随机推荐

  1. strip_tags--php

    函数剥去字符串中的 HTML.XML 以及 PHP 的标签 strip_tags(string,allow) 参数 描述 string 必需.规定要检查的字符串. allow 可选.规定允许的标签.这 ...

  2. GridView1 footer求和

    // ShowFooter="True" private double sum = 0;//取指定列的数据和,你要根据具体情况对待可能你要处理的是int protected voi ...

  3. TCP/IP详解学习笔记(1)-基本概念【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/665041 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为 ...

  4. 伯乐在线资讯URL

    伯乐资讯URL # encoding: utf-8 import requests from bs4 import BeautifulSoup import csv import time base_ ...

  5. ionic2——环境配置篇

    环境配置 安装nodeJS 配置cnpm 安装ionic2 安装cordova 安装java sdk 安装android sdk(在项目最后打包时app的时候会用到,前期是在浏览器环境测试开发暂时不需 ...

  6. mysql数据库乱码问题

    设置如下:SET character_set_client=utf8; SET character_set_results=utf8; SET character_set_connection=utf ...

  7. 字符串数组是可以保存并输出null。只不过不好动态指定长度

    java里如何输出才能让字符串数组不显示出null 2014-05-23 17:46笨妞纤霏 | 浏览 1360 次  编程语言 代码如下package testCourse; public clas ...

  8. HTTP协议状态代码和错误状态含义的解释

    面试互联网公司经常被问的就是HTTP协议的知识,甚至比TCP/IP问的还多,其中HTTP代码的知识也是开发过程中经常会接触的,今天学习所有 HTTP 状态代码及其定义. 代码  指示     2xx  ...

  9. [基本操作] Mobius 反演, Dirichlet 卷积和杜教筛

    Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $ ...

  10. ASP.NET MVC 缓存Outputcache (局部动态)

    首先说一下需求: 比如我需要对网站首页做缓存,于是在首页对于的Action上贴上了Outputcache,接着问题就来了,首页上的有部分数据是不能做缓存的,比如个人信息,不然,每个人登陆都是看到第一个 ...