JAVA字符串的GZIP压缩解压缩方法

原创 2015年07月07日 17:50:02
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 ZipUtil2 {   
  
 // 压缩   
 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";   
        String str="使用平台默认编码,也" +
        		"可以显式的指定如使用平台默认编码" +
        		",也可以显式的指定如使用平台默认编码," +
        		"也可以显式的指定如使用平台默认编码," +
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"+
        		"也可以显式的指定如使用平台默认编码,也可以显式的指定如"; 
      System.out.println("原长度:"+str.length());     
         
      System.out.println("压缩后:"+ZipUtil2.compress(str).length());     
         
    System.out.println("解压缩:"+ZipUtil2.uncompress(ZipUtil2.compress(str)));   
  }   
 
}  

[Java]使用gzip对字符串进行压缩/解压

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio...
  • u014595019
  • u014595019
  • 2015年12月09日 01:12
  • 2372

Java使用GZIP进行压缩和解压缩(GZIPOutputStream,GZIPInputStream)

使用GZIPOutputStream进行GZIP压缩: public static byte[] compress(String str, String encoding) { if...
  • wenqisun
  • wenqisun
  • 2016年04月11日 14:49
  • 19769

GZip 压缩解压 --- Pako 的压缩解压

一、GZip压缩解压 package java调用JS; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStr...
  • a2241076850
  • a2241076850
  • 2017年01月20日 10:25
  • 2714

字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍

1、ZIP、 GZIP  计算机文件压缩算法,JDK中java.util.zip.*中实现。主要包括ZipInputStream/ ZipOutputStream、GZipInputStream/...
  • MCpang
  • MCpang
  • 2014年11月15日 05:25
  • 8898

http client对post内容gzip压缩和server端解压接收

client端代码: public void sendHttp(String url, String message) { if (StringUtils.isBlank(message)) { ...
  • lcx46
  • lcx46
  • 2014年06月08日 20:40
  • 28653

关于几种语言(c#,php,python,javascript)字符串的gzip压缩与解压的整理

背景介绍 因为一直在处理restful API,给移动端提供的数据需要考虑流量问题,优先考虑就是压缩现有的字符串,然后再考虑业务逻辑方面的减少流量。鉴于找这些资料也花了不少时间,所以整理了这篇文...
  • a2241076850
  • a2241076850
  • 2017年01月18日 12:33
  • 489

Android Gzip压缩和解压缩文件

为了节省流量用到了Gzip压缩文件。  参考此链接中的代码https://gist.github.com/ansjsun/5791394 import java.io.ByteArrayI...
  • mobei1983
  • mobei1983
  • 2016年05月26日 11:19
  • 906

http通信,Android Gzip压缩解压

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;...
  • mr_raptor
  • mr_raptor
  • 2016年03月03日 11:59
  • 3760

HttpCLient实现对被GZip压缩过的Response进行解压

发送http请求时,设置请求头Accept-Encoding:gzip, deflate,则服务器会返回压缩的内容。 若不设置,相应内容则正常返回。 发送请求(要求服务端对re...
  • qq_29663071
  • qq_29663071
  • 2016年11月29日 16:47
  • 3146

c++ zlib实现gzip压缩字符串

地址:http://www.oschina.net/code/snippet_65636_22542 因为最近需要像web上报些数据,对接的web是统一的接口,需要我这边对数据进行gzip压缩以及ba...
  • danis_wang
  • danis_wang
  • 2016年05月19日 12:32
  • 3462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA字符串的GZIP压缩解压缩方法
举报原因:
原因补充:

(最多只允许输入30个字)