`
gllwhq
  • 浏览: 15289 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA字符串压缩解压缩方法

阅读更多
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
分享到:
评论
1 楼 潘清山 2013-08-01  
试试中文, 越压越大

相关推荐

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

    LZ78压缩算法是一种基于字典的无损数据压缩方法,由Abraham Lempel、Jacob Ziv和Stu Arkin在1977年提出。它通过查找输入字符串中的最长匹配前缀来构建一个新的编码,从而实现数据的压缩。这种算法的主要思想是创建一...

    字符串解压缩

    字符串压缩通常基于特定的算法,如霍夫曼编码、LZ77、LZ78、Run-Length Encoding (RLE) 或者Burrows-Wheeler Transform (BWT)。这些算法的目标是减少字符串的存储空间,通过识别和利用字符串中的重复模式或统计特性...

    java算法,实现压缩及解压缩

    ### Java算法:实现压缩及解压缩 #### 一、压缩功能实现 在Java中实现文件压缩功能主要依赖于`java.util.zip`包中的类。以下是对压缩代码的详细解析: ##### 1. 导入所需类库 ```java import java.io....

    quicklz cocos2dx 压缩 字符串压缩

    QuickLZ是一款高效的开源压缩库,它在Cocos2d-x框架中被广泛用于字符串压缩。Cocos2d-x是一个跨平台的2D游戏开发框架,支持多种操作系统,包括iOS、Android、Windows等。字符串压缩在游戏开发中非常重要,因为它可以...

    C#、java 字符流跨平台数据解压缩

    由于项目需求,需要在C#中压缩,然后在java里解压缩,或者倒过来,在Java里压缩,C#里解压缩,以下代码经测试验证通过。 关键技术点和体会: 压缩的结果采用Base64编码,方便在Java端或者C#端打印出来调试,也方便...

    哈夫曼编码实现压缩解压缩java

    - 解压缩时,首先根据编码表或树结构重建哈夫曼树,然后利用`BitInputStream`读取二进制串,按照编码表还原文本。 6. **文件操作**: - 在实际应用中,哈夫曼编码的压缩结果需要写入文件。Java提供了`...

    Huffman 压缩解压缩 Java实现

    需要注意的是,Java实现的Huffman压缩解压缩不适用于二进制文件,因为二进制文件的字节分布与ASCII文档不同,直接应用ASCII字符频率统计可能会导致压缩效果不佳。对于二进制文件,通常需要先进行预处理,如使用字节...

    java实现霍夫曼(huffman)树的压缩和解压缩

    java实现霍夫曼(huffman)树的压缩和解压缩,支持对文档的压缩和解压缩

    Java源码海量字符串的快速操作.rar

    对海量字符串进行排序时,可以使用Java的`Collections.sort()`方法,它基于TimSort算法,具有稳定的排序性能。在特定情况下,还可以自定义比较器以优化排序逻辑。 5. **分治策略(Divide and Conquer)** 对于大...

    利用Java实现zip压缩解压缩

    ### Java 实现 ZIP 文件压缩与解压缩 #### 知识点概述 在现代软件开发过程中,数据压缩是一项非常重要的技术,特别是在处理大量数据时。Java 作为一种广泛应用的编程语言,提供了丰富的 API 来支持文件的压缩与解...

    文件解压和压缩 解决中文乱码

    在IT行业中,文件的压缩和解压是一项...总的来说,理解和掌握文件压缩和解压的原理,以及处理中文乱码的方法,对Java开发者来说至关重要,这能够帮助他们有效地处理各种文件操作需求,尤其是涉及到多语言环境的时候。

    压缩和解压缩字符串

    本篇将详细探讨两种主要的方法:Inflater和Deflater,它们分别用于解压缩和压缩字符串。 Deflater是Java中的核心压缩工具,它实现了DEFLATE算法,该算法被广泛应用于如ZIP和GZIP等文件格式。使用Deflater,我们可以...

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

    2. **字符串压缩**: 数据压缩可以减少传输的数据量,提高效率。Android中,可以使用Gzip或者Zlib库进行压缩。Gzip是一种广泛使用的压缩格式,而Zlib则是一个更底层的库,可以用于创建gzip或者其他压缩格式的文件。...

    字符串-Java解题分析-学习资料.zip

    字符串-Java解题分析-学习资料.zip 是一...无论是初学者还是有一定经验的开发者,都可以从中获取有关Java字符串处理的实用知识和技能。 场景目标: 技能提升:帮助开发者提升解决字符串相关问题的能力,提高编程水平。

    huffman压缩及解压(java版)

    6. **解压缩**:读取TXZ文件和编码表,按照哈夫曼编码还原字符,再写回TXT文件。 在Java实现过程中,可以将上述步骤封装成类,如`HuffmanEncoder`和`HuffmanDecoder`,分别处理压缩和解压缩任务。`src`目录可能包含...

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

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

    java实现文件的压缩解压

    根据给定的信息,我们可以深入探讨Java中文件的压缩与解压缩技术,同时解析字符串内部的工作原理,特别是关于字符串常量池的重要概念。 ### Java中文件的压缩与解压缩 #### 压缩技术概述 在Java中,可以利用标准库...

Global site tag (gtag.js) - Google Analytics