zoukankan      html  css  js  c++  java
  • GZIP压缩、解压缩工具类

    GZIP压缩、解压缩工具类:

    public class GZIPUtiles {
        
        
        public static String compress(String str) throws IOException {
             if (null == str || str.length() <= 0) {
                 return str;
             }
             
             // 创建一个新的输出流
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             // 使用默认缓冲区大小创建新的输出流
             GZIPOutputStream gzip = new GZIPOutputStream(out);
             // 将字节写入此输出流
             gzip.write(str.getBytes("utf-8"));  //因为后台默认字符集有可能是GBK字符集,所以此处需指定一个字符集
             gzip.close();
             // 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
             return out.toString("ISO-8859-1");
        }
        
        
        public static String unCompress(String str) throws IOException {
             if (null == str || str.length() <= 0) {
                 return str;
             }
             // 创建一个新的输出流
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             // 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组
             ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes("ISO-8859-1"));
             // 使用默认缓冲区大小创建新的输入流
             GZIPInputStream gzip = new GZIPInputStream(in);
             byte[] buffer = new byte[256];
             int n = 0;
    
             // 将未压缩数据读入字节数组
             while ((n = gzip.read(buffer)) >= 0){
                   out.write(buffer, 0, n);
             }
             // 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串 
             //String string = out.toString("utf-8");
             //String unescapeJava = StringEscapeUtils.unescapeJava(string);
             return out.toString("utf-8"); 
             }
    
    
    }
  • 相关阅读:
    MVVM模式和在WPF中的实现(一)MVVM模式简介
    C#中实现并发的几种方法的性能测试
    搞笑:儿子的日记,叔叔妈妈
    MSN头像中小黄鸭子是什么?
    某人分析的70后,80后,90后
    有趣的纹身
    百度首页人物logo第一期:许三多
    关于微软Windows未来的一点畅想
    我把最难的21个汉字写进一篇文章
    百度还可以这样玩!
  • 原文地址:https://www.cnblogs.com/luchangyou/p/6278393.html
Copyright © 2011-2022 走看看