package test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class testZip {
// 压缩
public static byte[] compress(String str) throws IOException {
if (str == null || str.length() == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes("UTF-8"));
gzip.close();
return out.toByteArray();
}
// 解压缩
public static byte[] uncompress(byte[] str) throws IOException {
if (str == null || str.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(str);
GZIPInputStream gunzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = gunzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
return out.toByteArray();
}
public static void main(String[] args) throws IOException {
StringBuffer bf = new StringBuffer();
bf.append("234235423sdfgsatg43qr4rfsetuyw45t3wfeszdfvm 0394tivq0m234rfqa2,-r0kaw03 5jhtqca9203rjm0,qva9tj0qa3wj445");
String data= bf.toString();
System.out.println("压缩前内容:" + data);
System.out.println("压缩前大小:" + data.length());
String outdata = new String(testZip.compress(data));
System.out.println("压缩后内容:" + outdata);
System.out.println("压缩后大小:" + outdata.length());
String undata = null;
undata = new String(testZip.uncompress(outdata.getBytes("UTF-8")));
System.out.println("解缩后内容:" + undata);
System.out.println("解缩后大小:" + undata.length());
}
}
压缩只有就得到byte[]的字节流,数据大小对重复数据大的要小很多,我测试时使用了2000个MD5值,从6K压缩到1以下,效果还不错
分享到:
相关推荐
对字符串,字节数组进行GZIP压缩和解压缩
有完整的库文件代码和示例演示程序。可在内存中直接解压或压缩gzip字符串。
VB.NET写的字符串压缩函数,使用.NET的Compression写的。
LoadRunner中,向服务器发送经过了gzip压缩的字符串时,没有自带的gzip压缩的工具。通过使用zlib.dll里面的压缩工具,可以对字符串进行压缩。该资料有如果导入dll并且使用dll中的函数的方法。
delphi环境下开发的针对gZip字符串解压锁,包含源代码和demo实例。
该案例通过zlib实现gzip的压缩解压功能,包括解压gzip字符串、图片两个案例;提供了zlib1211的源码包和对应编译后生成的文件; 相应说明参考笔者博客:Qt笔记8--zlib实现gzip解压,链接...
php 提供的字符串压缩方法有 1.gzcompress — Compress a string This function compress the given string using the ZLIB data format. 2.gzencode — Create a gzip compressed string This function returns a ...
zlib库压缩和解压字符串STL string的实例详解 场景 1.一般在使用文本json传输数据, 数据量特别大时,传输的过程就特别耗时, 因为带宽或者socket的缓存是有限制的, 数据量越大, 传输时间就越长. 网站一般使用gzip来...
获取字符串或缓冲区的压缩大小 安装 $ npm install gzip-size 用法 const gzipSize = require ( 'gzip-size' ) ; const text = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ...
自己整理的算法: md5 des gzip(不能压缩中文) 压缩后为base64字符串
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码
主要介绍了基于pako.js实现gzip的压缩和解压功能,结合具体实例形式分析了pako.js实现字符串压缩与解压缩的相关操作技巧,需要的朋友可以参考下
1 LZO压缩算法基本原理分析 1.1 LZO压缩算法压缩原理 LZO压缩算法采用(重复长度L,指回距离D)代替当前已经在历史字符串中出现过的字符串,其中,重复长度是指,后出现的字符串与先出现的字符串中
pgzip 进行并行gzip压缩/解压缩。 这是与gzip完全兼容的替代品,替代了“ compress / gzip”。 这会将压缩分为并行压缩的块。 这对于压缩大量数据很有用。 输出是标准的gzip文件。 修改了gzip解压缩,以便在当前阅读...
* Base64 编码* ZLIB 压缩* GZIP压缩* 图像压缩(需要图像处理工具箱) 该包在内部使用 JAVA 函数。 必须在 Matlab 中启用 JAVA。 用法----- ### Base64 编码 使用 `base64encode` 和 `base64decode` 进行编码/...
在一般的压缩实用程序中,例如zip 、 gzip不能很好地压缩短字符串并且经常扩展它们。 它们还使用大量内存,这使得它们在 Arduino 等受限环境中无法使用。 注意:目前的字节码版本是 2,它取代了 Unisox 1。Unishox ...
主要介绍了NodeJS服务器实现gzip压缩的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了PHP使用zlib扩展实现GZIP压缩输出的方法,结合实例形式详细分析了php gzip配置及压缩输出的相关操作技巧,需要的朋友可以参考下
TinyDeflate作为C ++ 17模板函数的deflate / gzip解压缩器,仅需要最少的内存即可工作。 使用条款:Zlib版权所有:copyright:2018 Joel Yliluoma积极设置下的内存使用(backtr TinyDeflate作为C ++ 17模板函数的...
lz4hc的数据压缩/解压缩以及在MATLAB和Linux中对base64编码/解码的支持。 GNU八度。 它快速而紧凑,可以在几分之一秒内处理大型阵列。 在6种受支持的压缩方法中,lz4是压缩/解压缩最快的方法。 lzma最慢,但压缩率...