首页 > 其他 > 详细

对数据进行GZIP压缩和解压

时间:2017-03-30 18:31:39      阅读:196      评论:0      收藏:0      [点我收藏+]
public class GzipUtils {

    /**
     * 对字符串进行gzip压缩
     * @param data
     * @return
     * @throws IOException 
     */
    public static String compress(String data) throws IOException {
        if (null == data || data.length() <= 0) {
            return data;
        }
        //创建一个新的byte数组输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        //使用默认缓冲区大小创建新的输出流
        GZIPOutputStream gzip = new GZIPOutputStream(out);
        //将b.length个字节写入此输出流
        gzip.write(data.getBytes());
        gzip.flush();
        gzip.close();
        
        //使用指定的charsetName,通过解码字节将缓冲区内容转换为字符串
        return out.toString("ISO-8859-1");
    }
    
    /**
     * 对字符串进行解压缩
     * @param data
     * @return
     * @throws Exception 
     */
    public static String unCompress(String data) throws Exception {
        if (null == data && data.length() <= 0) {
            return data;
        }
        //创建一个新的byte数组输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        //创建一个byte数组输入流
        ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes("ISO-8859-1"));
        //创建gzip输入流
        GZIPInputStream gzip = new GZIPInputStream(in);
        byte[] buf = new byte[1024];
        int len = 0;
        while ((len = gzip.read(buf)) >= 0) {
            out.write(buf, 0, len);
        }
        // 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
        return out.toString("UTF-8");
    }

Gzip压缩和解压数据代码

对数据进行GZIP压缩和解压

原文:http://www.cnblogs.com/atomicbomb/p/6647611.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!