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
相关文章:
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何选择PHP开源工具快速搭建网站?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何快速登录WAP自助建站平台?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何通过cPanel快速搭建网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
沈阳制作网站公司排名,沈阳装饰协会官方网站?
宁波免费建站如何选择可靠模板与平台?
如何在Windows服务器上快速搭建网站?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
开封网站制作公司,网络用语开封是什么意思?
建站之星后台管理系统如何操作?
如何通过商城自助建站源码实现零基础高效建站?
临沂网站制作公司有哪些,临沂第四中学官网?
Android滚轮选择时间控件使用详解
建站之星导航配置指南:自助建站与SEO优化全解析
建站之星如何实现PC+手机+微信网站五合一建站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何在Windows 2008云服务器安全搭建网站?
怎么将XML数据可视化 D3.js加载XML
制作表格网站有哪些,线上表格怎么弄?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
名字制作网站免费,所有小说网站的名字?
如何快速搭建高效WAP手机网站?
Python多线程使用规范_线程安全解析【教程】
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站与域名管理如何高效结合?
如何快速查询网站的真实建站时间?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
招贴海报怎么做,什么是海报招贴?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何在香港免费服务器上快速搭建网站?
如何零基础在云服务器搭建WordPress站点?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何选择适配移动端的WAP自助建站平台?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
网站插件制作软件免费下载,网页视频怎么下到本地插件?
浅谈Javascript中的Label语句
如何快速搭建FTP站点实现文件共享?
c# await 一个已经完成的Task会发生什么
如何做静态网页,sublimetext3.0制作静态网页?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
*请认真填写需求信息,我们会在24小时内与您取得联系。