Flutter Gzip 编码与解码 Dart Gzip 工具类操作

Flutter项目开发全套教程 专栏收录该内容
204 篇文章 132 订阅

在百度百科中有提到

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 完全采取了 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;
}
  • 0
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值