import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class StringCompress
{
// 压缩
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 decompress(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);
}
return out.toString("GBK");
}
public static void main(String[] args) throws IOException
{
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
String msg = "";
System.out.println("压缩前长度:" + msg.length());
//压缩
String c = compress(msg);
// 压缩后进行BASE64
String base64data2 = encoder.encodeBuffer(c.getBytes("ISO-8859-1"));
System.out.println("压缩后长度:" + base64data2.length());
//解压前进行反BASE64
byte[] b = decoder.decodeBuffer(base64data2);
//解压
String d = decompress(new String(b, "ISO-8859-1"));
System.out.println("解压后长度:" + d.length());
}
}
分享到:
相关推荐
java压缩字符串
为了解决这个问题,可以对RTF字符串进行压缩,以减少传输的数据量。 在DELPHI中,我们可以利用各种压缩库或算法来实现字符串的压缩。例如,ZLib库提供了一套完整的压缩和解压缩功能,包括常用的Deflate算法。以下是...
使用以下代码进行压缩和解压 /// /// 利用ICSharpCode压缩 /// /// <param name="param"></param> /// <returns></returns> public static string IC_Compress(string param) { byte[] data = System....
以下是一个简单的使用QuickLZ在Cocos2d-x中压缩字符串的示例: ```cpp #include "quicklz.h" std::string originalString = "这是一段需要压缩的字符串"; unsigned char compressedBuffer[originalString.size() *...
如果要使用ZIP格式压缩字符串,可以使用`ZipOutputStream`和`ZipEntry`,但流程会稍微复杂些,因为ZIP格式通常用于存储多个文件或目录。 在实际应用中,字符串压缩通常用于减少网络传输的数据量或者节省存储空间。...
- 读取压缩字符串,每次取出一个编码,根据编码在字典中找到对应的子串,并添加到解压后的字符串中。 - 更新字典,将新生成的子串(当前解压字符串+下一个编码对应的子串的第一个字符)添加到字典。 - 重复此过程...
在Java编程语言中,压缩和解压缩字符串是常见的数据处理任务,主要应用于减少存储空间或在网络上传输数据时减小带宽需求。本篇将详细探讨两种主要的方法:Inflater和Deflater,它们分别用于解压缩和压缩字符串。 ...
# 压缩字符串 compressed = zlib.compress(b'Hello, World!') print(len(compressed)) # 输出压缩后的长度 # 解压缩字符串 decompressed = zlib.decompress(compressed) print(decompressed.decode('utf-8')) # ...
在本压缩包“java-leetcode题解之第443题压缩字符串.zip”中,包含的是针对LeetCode平台上的第443题“压缩字符串”的Java解决方案。LeetCode是一个在线编程挑战平台,它提供了各种算法题目,帮助程序员提升技能并...
"Android 加密压缩解密解压缩字符串简单DEMO"是一个示例项目,它展示了如何处理字符串的加密、压缩、解密和解压缩过程,这对于处理大量数据在后台与前台之间传输的情况非常有用。下面,我们将详细探讨这些关键知识点...
通过键盘输入一串小写字母(a~z)组成的字符串,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...
- 对于接收到的gzip压缩字符串,首先需要将其从Base64解码回字节流,如果之前是这么处理的。 - 然后调用`ZLib`库中的解压函数,如`GzipDecompress`或`DecompressBuffer`,将gzip格式的字节流还原为原始的非压缩...
例如,GZIPOutputStream可以用来压缩字符串。下面是一个简单的示例: ```java import java.util.zip.GZIPOutputStream; import java.io.ByteArrayOutputStream; public String compressString(String input) { ...
在C语言中,字符串压缩是一种将字符串转换为更紧凑形式的技术,常用于节省存储空间或提高数据处理效率。本文将重点介绍三种简单的字符串压缩算法,包括哈夫曼编码,以及它们在不同场景中的应用。 首先,最基础的...
随着科技的进步,通信系统的设计不断优化,其中“利用压缩字符集的高渗透无线电通信系统”是一个具有前瞻性的研究主题。这种通信系统旨在提高无线通信的效率和可靠性,尤其是在有限的频谱资源下,通过压缩技术和高效...
Android端可以对字符串进行压缩,我们在进行大量简单文本传输时,可以先压缩字符串再发送。接收端接收后再解压。也可以将字符串压缩后存入数据库中,下面话不多说了,来一起看看详细的介绍吧。 使用到的类库 ...
要使用ZLib在Delphi中压缩字符串,首先需要将ZLib库集成到Delphi项目中,这通常通过引入相应的单元文件(如`zlib.pas`)来完成。 下面是一段示例代码,演示了如何使用ZLib在Delphi中压缩和解压缩字符串: ```...
利用LZW算法对文本信息进行压缩。ZW算法又叫“串表压缩算法”就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。 LZW压缩算法是Unisys的专利,有效期到2003年,所以对它的使用已经没有限制了
VB.NET写的字符串压缩函数,使用.NET的Compression写的。