package com.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
// 将一个字符串按照zip方式压缩和解压缩
public class ZipUtil {
// 压缩
public static String compress(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes());
gzip.close();
return out.toString("ISO-8859-1");
}
// 解压缩
public static String uncompress(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(str
.getBytes("ISO-8859-1"));
GZIPInputStream gunzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = gunzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
// toString()使用平台默认编码,也可以显式的指定如toString("GBK")
return out.toString();
}
// 测试方法
public static void main(String[] args) throws IOException {
//测试字符串
String str="%5B%7B%22lastUpdateTime%22%3A%222011-10-28+9%3A39%3A41%22%2C%22smsList%22%3A%5B%7B%22liveState%22%3A%221";
System.out.println("原长度:"+str.length());
System.out.println("压缩后:"+ZipUtil.compress(str).length());
System.out.println("解压缩:"+ZipUtil.uncompress(ZipUtil.compress(str)));
}
}
原长度:104
压缩后:95
分享到:
相关推荐
运行程序之后输入任意的字符串,将字符串转化成二进制数字字符串,然后利用LZ78算法实现对二进制字符串压缩解压,最后再恢复原来的字符串
Java实现压缩与解压缩ZIP import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;...
由于项目需求,需要在C#中压缩,然后在java里解压缩,或者倒过来,在Java里压缩,C#里解压缩,以下代码经测试验证通过。 关键技术点和体会: 压缩的结果采用Base64编码,方便在Java端或者C#端打印出来调试,也方便...
两种方法 对字符串进行压缩和解压缩,inflater和deflater。
CompresszZipFile 中带是 zip解压 ZipFileUtil 是文件的压缩 和rar的解压
java实现霍夫曼(huffman)树的压缩和解压缩,支持对文档的压缩和解压缩
使用哈夫曼编码实现对文本文件的压缩和解压缩
字符串-Java解题分析-学习资料.zip 是一...无论是初学者还是有一定经验的开发者,都可以从中获取有关Java字符串处理的实用知识和技能。 场景目标: 技能提升:帮助开发者提升解决字符串相关问题的能力,提高编程水平。
通过读取TXT文件,输出压缩后的TXZ文件,现实压缩率,提供解压缩;
下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\aaaa\\中文.zip","E:\\aaaa\\中文","GBK"); } 实例: 将E:\\aaaa\\中文.zip解压到E:\\aaaa\...
Java sdk自带的压缩、解压缩的方式,极大的省了字符串的空间;
LZ4 Java 基于Yann Collet的工作,可从获得Java的LZ4压缩。... 这两种压缩算法产生的流使用相同的压缩格式,解压缩速度非常快,并且可以通过相同的解压缩器实例进行解压缩。 实作 对于LZ4压缩机,
拆线机Java上的字符串解包器任务:用Java编写一个用于解压缩字符串的程序。 输入是数字[string]形式的字符串,输出是包含重复子字符串的字符串。 示例:输入-3 [xyz] 4 [xy] z; 输出-xyzxyzxyzxyxyxyxyz 主要功能-...
输入结果 Consloe代码 1. 输入字符串: snowolf@zlex....4. 解压缩后字节长度: 59 5. 输出字符串: snowolf@zlex.org;dongliang@zlex.org;zlex.dongliang@zlex.org ZLib压缩对大字节数据压缩,才能反映出压缩效果。
将SOAP传输数据进行加密和压缩,接收方再进行解压缩、分析进行持久化操作
利用Java实现zip压缩/解压缩 Java语言的Socket编程 利用Java实现串口全双工通讯 Java语言中字符的处理 区分引用类型和原始类型 Java中的两个特殊变量this和super Java中利用散列表实现股票行情的查询 Java中文...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
通过这篇通过UTF-16压缩方法(Java Server-> Web上的JS或Node.js服务器上的-> Java Client / Android)与JavaScript库进行互操作。 如何使用 使用lzstring4j非常简单。 但让我们看看: 签出并编译项目: git clone...
实现一种使用重复字符计数执行基本字符串压缩的方法。 例如,字符串 aabcccccaaa 将变为 a2blc5a3。 如果“压缩”字符串不会变得小于原始字符串,则您的方法应返回原始字符串。 假设您有一个方法 isSubstring 来检查...