golang 使用gzip压缩
在 golang 中,可以通过标准库中的 gzip 包来实现 gzip 压缩。
以下是一个简单的示例:
package main
import (
"bytes"
"compress/gzip"
"fmt"
"io/ioutil"
)
func main() {
// 待压缩的原始数据
data := []byte("hello, world")
// 创建一个 buffer 用于存放压缩后的数据
var buf bytes.Buffer
// 创建一个 gzip.Writer
gzipWriter := gzip.NewWriter(&buf)
// 将原始数据写入 gzipWriter,实现压缩
_, err := gzipWriter.Write(data)
if err != nil {
fmt.Println(err)
return
}
// 关闭 gzipWriter,刷新缓冲区
gzipWriter.Close()
// 读取压缩后的数据
compressedData := buf.Bytes()
// 输出压缩后的数据
fmt.Println(compressedData)
// 解压缩
reader, err := gzip.NewReader(bytes.NewBuffer(compressedData))
if err != nil {
fmt.Println(err)
return
}
// 读取解压缩后的数据
uncompressedData, err := ioutil.ReadAll(reader)
if err != nil {
fmt.Println(err)
return
}
// 输出解压缩后的数据
fmt.Println(string(uncompressedData))
}
输出结果:
[31 139 8 0 0 0 0 0 0 0 165 72 205 201 201 215 81 8 207 47 202 47 202 73 83 72 74 205 47 202 73 45 46 204 77 85 72 74 205 47 202 73 83 72 74 205 47 202 73 83 72 74 205 215 81 72 205 201 201 215 81 0 0 0]
hello, world
可以看到,压缩后的数据是一个 byte 数组,解压缩后得到的数据与原始数据一致
原文地址: https://www.cveoy.top/t/topic/hlsi 著作权归作者所有。请勿转载和采集!