• 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"); 
             }
    
    
    }
  • 相关阅读:
    实现基于C++的动态事件机制(转)
    D3D HLSL 一段代码注释
    directx加载ms3d动画模型
    几种空间分割算法研究之bsp
    IxEngine开发笔记
    使用UVAtlas技术管理贴图
    八叉树
    c#调用C++写的dll导出类,包含继承,重载等详细介绍(转载)
    给自己毕业前的一点任务
    大小端问题
  • 原文地址:https://www.cnblogs.com/luchangyou/p/6278393.html
Copyright © 2020-2023  润新知