java中GZIP压缩解压类使用实例

当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩。
实例代码:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* GZIP压缩解压类
*/
public class MessageGZIP {
private static String encode = "utf-8";//"ISO-8859-1"
public String getEncode() {
return encode;
}
/*
* 设置 编码,默认编码:UTF-8
*/
public void setEncode(String encode) {
MessageGZIP.encode = encode;
}
/*
* 字符串压缩为字节数组
*/
public static byte[] compressToByte(String str){
if (str == null || str.length() == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip;
try {
gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes(encode));
gzip.close();
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
/*
* 字符串压缩为字节数组
*/
public static byte[] compressToByte(String str,String encoding){
if (str == null || str.length() == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip;
try {
gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes(encoding));
gzip.close();
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
/*
* 字节数组解压缩后返回字符串
*/
public static String uncompressToString(byte[] b) {
if (b == null || b.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(b);
try {
GZIPInputStream gunzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = gunzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
} catch (IOException e) {
e.printStackTrace();
}
return out.toString();
}
/*
* 字节数组解压缩后返回字符串
*/
public static String uncompressToString(byte[] b, String encoding) {
if (b == null || b.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(b);
try {
GZIPInputStream gunzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = gunzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
return out.toString(encoding);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# GZIP压缩解压类
# GZIP使用方法
# Java GZIP压缩与解压缩代码实例
# Java实现文件压缩与解压的示例[zip格式
# gzip格式]
# java 压缩和解压缩Zip、Jar、Gzip文件实例代码
# java使用gzip实现文件解压缩示例
# Java GZip 基于内存实现压缩和解压的方法
# 解压缩
# 压缩解压
# 希望能
# 要走
# 当我们
# 谢谢大家
# 服务端
# 时需
# 客户端
# GZIPOutputStream
# GZIPInputStream
# IOException
# util
# zip
# public
# static
# private
# String
# MessageGZIP
# encode
相关文章:
如何选择网络建站服务器?高效建站必看指南
如何做网站制作流程,*游戏网站怎么搭建?
建站之星备案是否影响网站上线时间?
如何在宝塔面板中修改默认建站目录?
如何用VPS主机快速搭建个人网站?
建站之星如何一键生成手机站?
如何用好域名打造高点击率的自主建站?
广州美橙建站如何快速搭建多端合一网站?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
如何通过VPS建站实现广告与增值服务盈利?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
建站主机服务器选型指南与性能优化方案解析
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何通过万网虚拟主机快速搭建网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
制作农业网站的软件,比较好的农业网站推荐一下?
如何在阿里云虚拟服务器快速搭建网站?
如何在阿里云香港服务器快速搭建网站?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何用景安虚拟主机手机版绑定域名建站?
浅谈Javascript中的Label语句
如何用wdcp快速搭建高效网站?
定制建站如何定义?其核心优势是什么?
如何选购建站域名与空间?自助平台全解析
网站制作公司,橙子建站是合法的吗?
制作网站的软件免费下载,免费制作app哪个平台好?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
如何快速搭建高效简练网站?
c# 在高并发场景下,委托和接口调用的性能对比
建站ABC备案流程中有哪些关键注意事项?
如何配置WinSCP新建站点的密钥验证步骤?
如何在云主机上快速搭建网站?
如何快速建站并高效导出源代码?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
建站之星如何助力网站排名飙升?揭秘高效技巧
如何快速查询网址的建站时间与历史轨迹?
如何在阿里云购买域名并搭建网站?
建站之星客服服务时间及联系方式如何?
建站主机是什么?如何选择适合的建站主机?
郑州企业网站制作公司,郑州招聘网站有哪些?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何在景安服务器上快速搭建个人网站?
在线教育网站制作平台,山西立德教育官网?
如何在腾讯云服务器快速搭建个人网站?
个人网站制作流程图片大全,个人网站如何注销?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
七夕网站制作视频,七夕大促活动怎么报名?
*请认真填写需求信息,我们会在24小时内与您取得联系。