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"); 
             }
    
    
    }
  • 相关阅读:
    python 闭包
    并行【parallel】和并发【concurrency】线程是并发还是并行,进程是并发还是并行
    生成器,送代器的区别
    深拷贝和浅拷贝的区别
    对缺省参数的理解
    对不定长参数的理解
    mysql三范式
    mysql基础查询语法
    mysql常见查询练习题
    Ubantu-Nginx部署
  • 原文地址:https://www.cnblogs.com/luchangyou/p/6278393.html
Copyright © 2011-2022 走看看