Int*_*net 22

gzip.Writerio.Writer

例:

package main

import (
    "bytes"
    "compress/gzip"
    "fmt"
    "log"
)

func main() {
    var b bytes.Buffer
    gz := gzip.NewWriter(&b)
    if _, err := gz.Write([]byte("YourDataHere")); err != nil {
        log.Fatal(err)
    }
    if err := gz.Close(); err != nil {
        log.Fatal(err)
    }
    fmt.Println(b.Bytes())
}
compress/flategzip.NewWriterLevel
  • 还有一件事是Flush()只将_current_数据写入缓冲区.它没有完成整个GZIP格式.因此,在这种情况下,它是相当无用的,因为在最后一行写的不是有效的GZIP结构.你需要调用Close()_before_你用缓冲区做任何事情. (2认同)
  • 很棒的提示@PhilKulak。只需添加一点,使用_defer_关闭压缩的Writer可能会导致一些细微的错误,即在关闭缓冲区之前正在使用缓冲区。读取压缩数据时,这可能导致意外的EOF错误。小心! (2认同)