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实现扫码支付【实战】  如何快速查询域名建站关键信息?  公司网站制作需要多少钱,找人做公司网站需要多少钱?