博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Deflater 压缩解压
阅读量:5818 次
发布时间:2019-06-18

本文共 1915 字,大约阅读时间需要 6 分钟。

import java.util.Arrays;import java.util.zip.Deflater;import java.util.zip.Inflater;import cc.zeelan.mall.common.assertion.Assert;/** * 数据压缩解压 *  * @project common-utils * @fileName StringZlibUtil.java * @Description * @author light-zhang * @date 2019年5月9日 * @version 1.0.0 */public class CompressUtil {    /**     * 压缩     *      * @param input       * @return     */    public static byte[] compress(byte[] input) {        try {            byte[] output = new byte[Integer.sum(input.length + 10,                    Double.valueOf(Math.ceil(input.length * 0.25f)).intValue())];            Deflater compresser = new Deflater(9);//压缩级别            compresser.setInput(input);            compresser.finish();            int compressedDataLength = compresser.deflate(output);            compresser.end();            return Arrays.copyOf(output, compressedDataLength);        } catch (Exception e) {            Assert.RuntimeException("数据压缩失败");        }        return null;    }    /**     * 解压缩     *      * @param barr 须要解压缩的字节数组     * @return     * @throws Exception     */    public static byte[] uncompress(byte[] barr) {        try {            byte[] result = new byte[2014];            Inflater inf = new Inflater();            inf.setInput(barr);            int infLen = inf.inflate(result);            inf.end();            return Arrays.copyOf(result, infLen);        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    public static void main(String[] args) throws Exception {        String str = "abcde|qqqqqqqqqqqqqqq|wwwwwwwwwwwwwwwwwwww";         System.out.println("压缩前 " + str.getBytes().length);        byte[] def = CompressUtil.compress(str.getBytes());        System.out.println("压缩后 " + def.length);        byte[] inf = CompressUtil.uncompress(def);        System.out.println(new String(inf));     }}

 

转载于:https://www.cnblogs.com/light-zhang/p/10895810.html

你可能感兴趣的文章
linux软件包管理之三(源代码安装)
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
Apache配置
查看>>
Method Swizzling对Method的要求
查看>>
佛祖保佑,永不宕机
查看>>
四、配置开机自动启动Nginx + PHP【LNMP安装 】
查看>>
Linux 目录结构及内容详解
查看>>
OCP读书笔记(24) - 题库(ExamD)
查看>>
解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
查看>>
.net excel利用NPOI导入oracle
查看>>
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
My97DatePicker 日历插件
查看>>
hive基本操作与应用
查看>>
excel快捷键设置
查看>>
poj3692
查看>>
python之信号量【Semaphore】
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
WCF
查看>>