zoukankan      html  css  js  c++  java
  • 数据压缩

    import java.io.ByteArrayInputStream;
     4 import java.io.ByteArrayOutputStream;
     5 import java.io.IOException;
     6 import java.util.zip.GZIPInputStream;
     7 import java.util.zip.GZIPOutputStream;
     8 
     9 /**
    10  * <p>
    11  * 功能描述:数据压缩帮助类
    12  * </p>
    13  */
    14 public class CompressUtil {
    15 
    16     private static String encode = "utf-8";
    17 
    18     public String getEncode() {
    19         return encode;
    20     }
    21 
    22     public void setEncode(String encode) {
    23         CompressUtil.encode = encode;
    24     }
    25 
    26     /**
    27      * 字符串的压缩
    28      * @param str
    29      * @return byte[]
    30      * @throws IOException
    31      */
    32     public static byte[] compress(String str) throws IOException {
    33         // 创建一个新的 byte 数组输出流
    34         ByteArrayOutputStream out = new ByteArrayOutputStream();
    35         // 使用默认缓冲区大小创建新的输出流
    36         GZIPOutputStream gzip = new GZIPOutputStream(out);
    37         // 将 b.length 个字节写入此输出流
    38         gzip.write(str.getBytes(encode));
    39         gzip.close();
    40         return out.toByteArray();
    41     }
    42 
    43     /**
    44      * 字符串的解压
    45      * @param str
    46      * @return
    47      * @throws IOException
    48      */
    49     public static String unCompress(byte[] a) throws IOException {
    50         // 创建一个新的 byte 数组输出流
    51         ByteArrayOutputStream out = new ByteArrayOutputStream();
    52         // 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组
    53         ByteArrayInputStream in = new ByteArrayInputStream(a);
    54         // 使用默认缓冲区大小创建新的输入流
    55         GZIPInputStream gzip = new GZIPInputStream(in);
    56         byte[] buffer = new byte[256];
    57         int n = 0;
    58         // 将未压缩数据读入字节数组
    59         while ((n = gzip.read(buffer)) >= 0) {
    60             // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte数组输出流
    61             out.write(buffer, 0, n);
    62         }
    63         return out.toString(encode);
    64     }
    65 }
    抱怨没有用,只能靠自己
  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/mybatis/p/5892385.html
Copyright © 2011-2022 走看看