Golang compress.gzip 包详解
compress/gzip
包提供了对 gzip 格式的压缩数据的读写支持。
package main
import (
"bytes"
"compress/gzip"
"fmt"
"io"
)
func main() {
// 压缩数据
var buf bytes.Buffer
gw := gzip.NewWriter(&buf)
_, err := gw.Write([]byte("Hello, World!"))
if err != nil {
panic(err)
}
err = gw.Close()
if err != nil {
panic(err)
}
// 读取压缩数据
gr, err := gzip.NewReader(&buf)
if err != nil {
panic(err)
}
defer gr.Close()
undata, err := io.ReadAll(gr)
if err != nil {
panic(err)
}
fmt.Printf("Original data: %s\n", "Hello, World!")
fmt.Printf("Uncompressed data: %s\n", string(undata))
}
这段代码首先使用 gzip.NewWriter
创建一个 gzip
写入器,将文本 "Hello, World!" 写入 buf
缓冲区,然后关闭写入器。接着,使用 gzip.NewReader
创建一个读取器来读取并解压之前写入的数据。最后,使用 io.ReadAll
读取全部数据并将其转换为字符串,并与原始数据比较验证是否一致。
评论已关闭