golang 用falte zip 压缩、解压字符串
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
32
33
34
35
36
37
38
39
40
package main
import (
"bytes"
"compress/flate"
"fmt"
"io/ioutil"
)
func FlateEncode(input string) (result []byte, err error) {
var buf bytes.Buffer
w, err := flate.NewWriter(&buf, -1)
w.Write([]byte(input))
w.Close()
result = buf.Bytes()
return
}
func FlateDecode(input []byte) (result []byte, err error) {
result, err = ioutil.ReadAll(flate.NewReader(bytes.NewReader(input)))
return
}
func main() {
s := "Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界"
fmt.Println(s, len(s))
s1, err := FlateEncode(s)
if err != nil {
panic(err)
}
fmt.Println(len(s1))
// flate
enflated, err := FlateDecode(s1)
if err != nil {
panic(err)
}
fmt.Println(string(enflated))
}
输出:
1
2
3
Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界 78
22
Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界Hello, 世界
本文网址: https://golangnote.com/topic/168.html 转摘请注明来源