java中GZIP压缩解压类使用实例
发布时间 - 2026-01-11 00:16:02 点击率:次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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何批量查询域名的建站时间记录?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
太平洋网站制作公司,网络用语太平洋是什么意思?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
微信小程序 require机制详解及实例代码
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
js代码实现下拉菜单【推荐】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
C#如何调用原生C++ COM对象详解
node.js报错:Cannot find module 'ejs'的解决办法
如何在万网开始建站?分步指南解析
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
5种Android数据存储方式汇总
新三国志曹操传主线渭水交兵攻略
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
图册素材网站设计制作软件,图册的导出方式有几种?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何实现用户密码重置功能?(完整流程代码)
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何确认建站备案号应放置的具体位置?
如何正确选择百度移动适配建站域名?
Laravel Docker环境搭建教程_Laravel Sail使用指南
南京网站制作费用,南京远驱官方网站?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
如何在Windows虚拟主机上快速搭建网站?
如何快速启动建站代理加盟业务?
javascript基本数据类型及类型检测常用方法小结
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
如何快速搭建虚拟主机网站?新手必看指南
Firefox Developer Edition开发者版本入口
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
如何快速上传自定义模板至建站之星?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
香港服务器租用每月最低只需15元?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何快速查询域名建站关键信息?
公司网站制作需要多少钱,找人做公司网站需要多少钱?

