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

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

1 import java.io.ByteArrayInputStream; 2 import java.io.ByteArrayOutputStream; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.zip.GZIPInputStream; 6 import java.util.zip.GZIPOutputStream; 7  8 import org.apache.commons.codec.binary.Base64; 9 import org.apache.commons.io.IOUtils;10 11 /**12  * 解压压缩工具13  */14 public class Gzip {15 16   public String unzip(String str) {17     if (str == null || str.length() == 0) {18       return str;19     }20     Base64 base64 = new Base64();21     byte[] bytes = base64.decode(str);22     String json = this.uncompress(bytes, "UTF-8");23     return json;24   }25 26   public String zip(String str) {27     if (str == null || str.length() == 0) {28       return str;29     }30     Base64 base64 = new Base64();31     byte[] bytes = this.compress(str, "UTF-8");32     String json = base64.encodeToString(bytes);33     return json;34   }35 36   private byte[] compress(String str, String encoding) {37     GZIPOutputStream gzip = null;38     ByteArrayOutputStream out = new ByteArrayOutputStream();39     IOStreamOperator operator = new IOStreamOperator();40     try {41       gzip = new GZIPOutputStream(out);42       gzip.write(str.getBytes(encoding));43       gzip.close();44     }45     catch (IOException ex) {46       ex.printStackTrace();47     }48     finally {49       operator.close(null, gzip);50     }51     return out.toByteArray();52   }53 54   private String uncompress(byte[] bytes, String encoding) {55     InputStream in = null;56     GZIPInputStream gi = null;57     IOStreamOperator operator = new IOStreamOperator();58     String ret = null;59     try {60       in = new ByteArrayInputStream(bytes);61       gi = new GZIPInputStream(in);62       ret = IOUtils.toString(gi, encoding);63     }64     catch (IOException e) {65       e.printStackTrace();66     }67     finally {68       operator.close(gi, null);69     }70     return ret;71   }72 }

 

转载于:https://www.cnblogs.com/zanderblogs/p/7560310.html

你可能感兴趣的文章
iOS - 拓展
查看>>
Windows命令远程执行工具Winexe
查看>>
XamarinAndroid组件教程RecylerView动画组件使用动画(3)
查看>>
linux vim 配置 go 开发环境
查看>>
week 6 CORS
查看>>
Openstack Neutron:二层技术和实现
查看>>
组合设计模式
查看>>
第十五部分_Struts2.1拦截器深度剖析、异常处理
查看>>
[codevs1286]郁闷的出纳员
查看>>
Python匿名函数详解
查看>>
python面向对象(六)之元类
查看>>
quartz.net插件类库封装(含源码)
查看>>
package.json中 npm依赖包版本前的符号的意义
查看>>
Cygwin下获取Android源代码
查看>>
C 自删除技术---批处理方式
查看>>
maven学习(下)利用Profile构建不同环境的部署包
查看>>
win8自带输入法如何切换全角、半角操作流程
查看>>
TensorFlow windows 安装(base anaconda)
查看>>
Percona XtraDB Cluster集群
查看>>
mybatis学习笔记1--HelloMybatis
查看>>