`

压缩字符

阅读更多
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压缩字符串

    java压缩字符串

    一个DELPHI压缩字符串的例子如RTF格式

    为了解决这个问题,可以对RTF字符串进行压缩,以减少传输的数据量。 在DELPHI中,我们可以利用各种压缩库或算法来实现字符串的压缩。例如,ZLib库提供了一套完整的压缩和解压缩功能,包括常用的Deflate算法。以下是...

    C#中压缩字符串

    使用以下代码进行压缩和解压 /// /// 利用ICSharpCode压缩 /// /// <param name="param"></param> /// <returns></returns> public static string IC_Compress(string param) { byte[] data = System....

    quicklz cocos2dx 压缩 字符串压缩

    以下是一个简单的使用QuickLZ在Cocos2d-x中压缩字符串的示例: ```cpp #include "quicklz.h" std::string originalString = "这是一段需要压缩的字符串"; unsigned char compressedBuffer[originalString.size() *...

    C#中ICSharpCode.SharpZipLib字符串压缩

    如果要使用ZIP格式压缩字符串,可以使用`ZipOutputStream`和`ZipEntry`,但流程会稍微复杂些,因为ZIP格式通常用于存储多个文件或目录。 在实际应用中,字符串压缩通常用于减少网络传输的数据量或者节省存储空间。...

    LZ78算法实现对任意字符串的压缩与解压

    - 读取压缩字符串,每次取出一个编码,根据编码在字典中找到对应的子串,并添加到解压后的字符串中。 - 更新字典,将新生成的子串(当前解压字符串+下一个编码对应的子串的第一个字符)添加到字典。 - 重复此过程...

    压缩和解压缩字符串

    在Java编程语言中,压缩和解压缩字符串是常见的数据处理任务,主要应用于减少存储空间或在网络上传输数据时减小带宽需求。本篇将详细探讨两种主要的方法:Inflater和Deflater,它们分别用于解压缩和压缩字符串。 ...

    Python123之字符串压缩#134865

    # 压缩字符串 compressed = zlib.compress(b'Hello, World!') print(len(compressed)) # 输出压缩后的长度 # 解压缩字符串 decompressed = zlib.decompress(compressed) print(decompressed.decode('utf-8')) # ...

    java-leetcode题解之第443题压缩字符串.zip

    在本压缩包“java-leetcode题解之第443题压缩字符串.zip”中,包含的是针对LeetCode平台上的第443题“压缩字符串”的Java解决方案。LeetCode是一个在线编程挑战平台,它提供了各种算法题目,帮助程序员提升技能并...

    Android 加密压缩解密解压缩字符串简单DEMO

    "Android 加密压缩解密解压缩字符串简单DEMO"是一个示例项目,它展示了如何处理字符串的加密、压缩、解密和解压缩过程,这对于处理大量数据在后台与前台之间传输的情况非常有用。下面,我们将详细探讨这些关键知识点...

    华为机试题:压缩字符串

    通过键盘输入一串小写字母(a~z)组成的字符串,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...

    Delphi解压gzip字符串例程

    - 对于接收到的gzip压缩字符串,首先需要将其从Base64解码回字节流,如果之前是这么处理的。 - 然后调用`ZLib`库中的解压函数,如`GzipDecompress`或`DecompressBuffer`,将gzip格式的字节流还原为原始的非压缩...

    Java 字符串压缩和文件压缩代码

    例如,GZIPOutputStream可以用来压缩字符串。下面是一个简单的示例: ```java import java.util.zip.GZIPOutputStream; import java.io.ByteArrayOutputStream; public String compressString(String input) { ...

    C语言中压缩字符串的简单算法小结

    在C语言中,字符串压缩是一种将字符串转换为更紧凑形式的技术,常用于节省存储空间或提高数据处理效率。本文将重点介绍三种简单的字符串压缩算法,包括哈夫曼编码,以及它们在不同场景中的应用。 首先,最基础的...

    行业资料-电子功用-利用压缩字符集的高渗透无线电通信系统的介绍分析.rar

    随着科技的进步,通信系统的设计不断优化,其中“利用压缩字符集的高渗透无线电通信系统”是一个具有前瞻性的研究主题。这种通信系统旨在提高无线通信的效率和可靠性,尤其是在有限的频谱资源下,通过压缩技术和高效...

    Android实现压缩字符串的方法示例

    Android端可以对字符串进行压缩,我们在进行大量简单文本传输时,可以先压缩字符串再发送。接收端接收后再解压。也可以将字符串压缩后存入数据库中,下面话不多说了,来一起看看详细的介绍吧。 使用到的类库 ...

    delphi字符串压缩

    要使用ZLib在Delphi中压缩字符串,首先需要将ZLib库集成到Delphi项目中,这通常通过引入相应的单元文件(如`zlib.pas`)来完成。 下面是一段示例代码,演示了如何使用ZLib在Delphi中压缩和解压缩字符串: ```...

    LZW.zip_RQQ_lzw_lzw压缩字符串_压缩 字符串_文本信息压缩

    利用LZW算法对文本信息进行压缩。ZW算法又叫“串表压缩算法”就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。 LZW压缩算法是Unisys的专利,有效期到2003年,所以对它的使用已经没有限制了

    VB.NET字符串压缩函数

    VB.NET写的字符串压缩函数,使用.NET的Compression写的。

Global site tag (gtag.js) - Google Analytics