使用Golang实现Gzip压缩与解压缩

发表时间: 2024-05-28 10:03

compress/gzip 压缩和解压包

gzip是当前应用非常广泛的文件压缩格式, golang 中也有内置的 compress/gzip对其提供原生支持。

go标准库的gzip包中提供了两个操作, 分别是压缩和解压

package mainimport (    "compress/gzip"    "io"    "log"    "os")func main() {    //第一步: 打开需要压缩的文件    fr, err := os.Open("data.bin")    if err != nil {          log.Fatalf("failed to open file to read: %v", err)    }    defer fr.Close()    //第二步: 创建压缩文件    fw, err := os.Create("gzip_res.gz")    if err != nil {        log.Fatalf("failed to open file to write: %v", err)    }    defer fw.Close()    //第三步: 创建写 io.Writer    w := gzip.NewWriter(fw)    defer w.Close()    _, err = io.Copy(w, fr)    if err != nil {        log.Fatalf("failed to gzip: %v", err)    }}

> # go run main.go