go实现gzip压缩、解压
go实现gzip压缩、解压
下面分享一下使用go进行gzip的压缩和解压的过程
package mainimport ("bytes""compress/gzip""io""os""testing"
)func TestCsGzip(t *testing.T) {//压缩err := doGzip([]byte("hello,golang"),"/data/aaa.gz","test.txt")if err != nil {t.Error(err.Error())return}//解压content ,err := unGzip("/data/aaa.gz")if err != nil {t.Error(err.Error())return}t.Log(string(content))
}/**
压缩bytes内容
1.根据指定目录创建文件
2.根据文件资源对象生成gzip Writer对象
3.往gzip Writer对象写入内容*/
func doGzip(content []byte,path string,fileName string) error{gzFile ,err := os.Create(path)if err != nil {return err}defer gzFile.Close()gzipWriter := gzip.NewWriter(gzFile)defer gzipWriter.Close()gzipWriter.Name = fileName_,err = gzipWriter.Write(content)if err != nil {return err}return nil
}/**
解压
1.根据指定路径打开gzip文件资源
2.由文件资源创建gzip Reader对象
3.将gizp 内存流copy到指定buf并返回bytes*/
func unGzip(path string)(content []byte,err error) {gzipFile, err := os.Open(path)if err != nil {return}defer gzipFile.Close()gzipReader, err := gzip.NewReader(gzipFile)if err != nil {return}defer gzipReader.Close()var buf bytes.Buffer_,err = io.Copy(&buf,gzipReader)if err != nil {return nil, err}return buf.Bytes() ,nil
}
go实现gzip压缩、解压相关推荐
- GZip 压缩解压 --- Pako 的压缩解压
一.GZip压缩解压 package java调用JS;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream ...
- 字符串GZIP压缩解压
c# /// <summary>/// 字符串压缩解压/// </summary>public class Zipper{public static string Compre ...
- Linux gzip压缩/解压 *.gz文件详解
gzip 是linux中常见的压缩/解压工具,最常见的使用对象是*.gz格式的文件,这里简单介绍下它最常见的用法, GZIP(1) General Commands Manual GZIP(1) NA ...
- java gzip 压缩解压工具类
因为觉得简单,本想抱着百度直接拿过来用的心态,结果发现网上的代码都转载自同一份,且埋了一个坑,你不仔细去梳理,很难发现. mark下需要注意的两点: 1. 编码/解码,压缩/解压缩是成对出现的 编码: ...
- C# GZip 压缩 / 解压
有时候我们需要去压缩数据 如视频/音频/内容 等信息 不少应用于套接字编程 不过微软为我 们提供了一个用于解压缩的类GZIP不过这东西是很多年以前就开了源代码的 如RAR则是借 鉴其算法修改增强的一个 ...
- gzip 压缩解压代码示例
#include <zlib.h> #include <iostream> #include <stdint.h> #include <string.h> ...
- python3 gzip 压缩/解压
import gzip t = gzip.compress('{"key":value""}'.encode())print(gzip.decompress(t ...
- Ubuntu使用gzip与bzip2与rar和tar压缩解压
目录 1.gzip压缩解压 2.bzip2压缩解压 3.rar压缩解压 tar归档压缩与解压包 1.gzip压缩解压 因为都是系统自带的我们不需要安装: ls 看一下目录当前的文件,创建一个 touc ...
- java 使用gzip压缩和解压 传输文件必备
java gzip 压缩解压工具类,开箱即用 gzip原理看我另外一篇介绍 压缩效果直接看图: package com.yeahmobi.datacheck.util;import java.io.* ...
- python压缩文件tar_python 实现tar文件压缩解压的实例详解
python 实现tar文件压缩解压的实例详解 python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = t ...
最新文章
- 自定义窗体设计器-控件测试
- 花了3个月整理的超级全面的Python资料和Java面试题,分享给大家!
- 用iptables做IP的静态映射
- html的body内标签之图片及表格
- 关于REST API设计的一些小经验
- Troubleshooting(三):网络
- SpringBoot使用ControllerAdvice和ExceptionHandler进行统一异常处理
- CECC2018赛季收官站我国×××手夺得年度总冠军
- java filewriter写入文件_Java中的写入字符文件类FileWriter
- mysql 动态游标 , 实际上不要使用, 因为两个人同时执行会删除了其中一个人的数据...
- C语言根号作用,c语言开根号(开根号编程)
- 验证18位身份证真实性
- 安卓紧急警报_我们的紧急警报系统依赖于重叠的私有服务混乱局面
- 上传到服务器的网站打开是空白,网站上传服务器,首页打开空白的解决办法|74cms|骑士cms...
- 支付宝支付之“单笔转账到支付宝账户接口”的调用(生成签名、上传应用公钥、下载SDK、接口调用、报错自动排查、查看错误码)
- 简单的学生网页作业源码 基于html css javascript仿淘宝购物商城设计毕业论文源码
- Cocos精品《热血传奇》|五千个日夜 同一个传奇
- 虚拟机、容器和沙箱是什么关系?
- 基于Java的学生课程管理系统的设计和实现
- Python 双色球彩票系统
热门文章
- 在vc++如何响应键盘和鼠标事件-visual c++
- 微信小程序 地图实现查找标记地点
- 学习spss的心得体会
- 小米便签类间关系图绘制方法
- Python暴力破解WIFI(超详细破解教程+UI设计教程+步步解析)
- 实例讲解什么是Meta回归,怎么利用Meta回归发表文章!
- VGA分辨率无法识别或错误通过添加自定义配置参数正确显示(Ubuntu/Windows)
- python3传智播客_3.Ubuntu安装以及配置(传智播客.黑马程序员python学科)
- python-封装继承多态
- 中国地图3D立体效果