Skip to content

compress

package main
import (
"bytes"
"compress/gzip"
"fmt"
"io"
"strings"
)
func main() {
originData := "这是一段需要压缩的文本数据," + "重复内容" + strings.Repeat("重复内容", 100) + ",结束。"
var compressData bytes.Buffer
writer := gzip.NewWriter(&compressData)
_, err := writer.Write([]byte(originData))
if err != nil {
panic(err)
}
writer.Close()
fmt.Printf("原始数据大小:%d,压缩数据大小:%d\n", len(originData), compressData.Len())
fmt.Printf("压缩率:%.2f%%\n", float64(compressData.Len())/float64(len(originData))*100)
// 解压
reader, err := gzip.NewReader(&compressData)
if err != nil {
panic(err)
}
defer reader.Close()
readAll, err := io.ReadAll(reader)
if err != nil {
panic(err)
}
fmt.Println(string(readAll))
}