golang 用gzip 压缩、解压缩字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main
import (
"bytes"
"compress/gzip"
"encoding/base64"
"fmt"
"io/ioutil"
)
func main() {
var b bytes.Buffer
gz := gzip.NewWriter(&b)
if _, err := gz.Write([]byte("YourDataHere")); err != nil {
panic(err)
}
if err := gz.Flush(); err != nil {
panic(err)
}
if err := gz.Close(); err != nil {
panic(err)
}
str := base64.StdEncoding.EncodeToString(b.Bytes())
fmt.Println(str)
data, _ := base64.StdEncoding.DecodeString(str)
fmt.Println(data)
rdata := bytes.NewReader(data)
r, _ := gzip.NewReader(rdata)
s, _ := ioutil.ReadAll(r)
fmt.Println(string(s))
}
在实际应用里,客户端与服务器端都是 Go 实现,我通常会省略 base64
编码这一步,直接传输 byte
数据(gzip 压缩后的数据)。
本文网址: https://golangnote.com/topic/154.html 转摘请注明来源