在百度百科中有提到

Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式,软件的作者是Jean-loup Gailly和Mark Adler

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式

在当下的 http 传输协议中,也会使用到 gzip,简单点来说 gzip 可以一定程度上对传输的数据进行压缩,然后提升传输的速度.

如果你有兴趣 你可以关注一下公众号 biglead 来获取最新的学习资料。

  • Flutter 从入门 到精通系列文章在这里
  • 当然也必需是要有源码的 在这里了
  • github 有点慢 不妨来看看码云的源码吧
  • 系列学习教程在这里

Flutter 完全采取了 Dart ,在 Dart 中,也可使用 gzip 。

import 'dart:convert';
import 'package:archive/archive.dart';

测试用例

void main() {testWidgets('Counter increments smoke test', (WidgetTester tester) async {print("Gzip压缩");//原始字符串String myString = 'myString';//gzip 压缩后的文本String zipString = gzipEncode(myString);print("gzip 编码-$zipString");//gzip 解压String zipString2 = gzipDencode(zipString);print("gzip 解编码-$zipString2");});
}

日志控制台输出如下

GZIP 压缩


///GZIP 压缩
String gzipEncode(String str) {//先来转换一下List<int> stringBytes = utf8.encode(str);//然后使用 gzip 压缩List<int> gzipBytes = new GZipEncoder().encode(stringBytes);//然后再编码一下进行网络传输String compressedString = base64UrlEncode(gzipBytes);return compressedString;
}

GZIP 解压缩

///GZIP 解压缩
String gzipDencode(String str) {//先来解码一下List<int> stringBytes = base64Url.decode(str);//然后使用 gzip 压缩List<int> gzipBytes = new GZipDecoder().decodeBytes(stringBytes);//然后再编码一下String compressedString = utf8.decode(gzipBytes);return compressedString;
}

Flutter Gzip 编码与解码 Dart Gzip 工具类操作相关推荐

  1. 使用org.apache.commons.io.FileUtils,IOUtils工具类操作文件

    转载自 使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件 File src = new File("G:/2012/portal/login ...

  2. 如何使用Arrays工具类操作数组

    介绍 我们要先知道Arrays 是什么. java.util.Arrays 类是 JDK 提供的一个工具类主要用来操作数组,比如数组的复制转换等各种方法,Arrays 的方法都是静态方法可以通过Arr ...

  3. base64编码和解码的js工具函数

    上代码 // 使用 const base64 = new Base64Code() const str = '你好' const en = base64.enCode(str) const de = ...

  4. 高德地图 SDK集成 定位 地理编码 搜索 经纬度获取 功能工具类

    最近项目要集成高德地图,然后可以根据语音输入指令,进行定位和地理编码搜索功能,从而实现获取当前位置经纬度和根据地址获取经纬度的功能 下载文件之只放了libs和主要代码文件 https://downlo ...

  5. Java基础篇--工具类操作之计算并输出21世纪的闰年,计算程序的执行时间

    计算并输出21世纪的闰年,计算程序的执行时间. 实现方法不唯一,此方法仅作初学者(自己)参考..... 所用类API介绍 所用方法API介绍 GregorianCalendar类中直接给出了判断是否为 ...

  6. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  7. (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库

    DevUtils Github About (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用. ...

  8. 史上最全的常用开发工具类收集Android

    API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验 ...

  9. 史上最全的开发工具类

    银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 ge ...

最新文章

  1. @available 和 #available
  2. Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql
  3. multi agent system university of liverpool professional presentation
  4. wxWidgets:exec 示例演示 wxExecute 和相关函数
  5. 一文说通Dotnet的委托
  6. macos big sur u盘安装_老款macbook机型欺骗补丁强制安装macOS11 Big Sur图文详解
  7. 【Pre蓝桥杯嵌入式】移植LCD程序+建立工程+LCD程序分析
  8. banner信息是什么_Spring Boot 2 尝鲜-动态 Banner
  9. html5 websocket与c,打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
  10. 无线通信定位一体化进展及其在煤矿井下应用分析
  11. jsp页面中文乱码解决方法
  12. Java实现Excel数据导入数据库
  13. HTML常见标签及个人简历制作
  14. o2o电商模式的创业机会有哪些?
  15. RAITE Hypervisor介绍
  16. 萌新-以ijcai19为模板的latex排版总结
  17. linux下 kafka的安装
  18. 团队建设之做好技术团队管理
  19. Iphone6S 换屏教程
  20. 如何进行网站诊断呢?

热门文章

  1. 发布!天池布匹疵点检测大赛解决方案与Baseline(acc:85%左右,mAP:52%左右)
  2. java 日志 异步_log4j 详解异步日志的配置和测试
  3. 收藏 | 佐治亚理工出品交互式线代教科书!
  4. 阿里公开自研AI集群细节:64个GPU,百万分类训练速度提升4倍
  5. 从零开始编写深度学习库(五)Eigen Tensor学习笔记2.0
  6. mAP(mean Average Precision)应用(转)
  7. 计算机主板知识,小白必看电脑主板知识扫盲,主板是什么?有什么用?
  8. python报错对象没有属性_属性错误:函数对象在python中没有属性
  9. 自动点击屏幕脚本代码_原来这么简单,一分钟学会引流脚本
  10. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片