【发布时间】:2018-03-08 05:57:09
【问题描述】:
这就是我使用 gzip 编写器的方式。
var b bytes.Buffer
gz := gzip.NewWriter(&b)
if _, err := gz.Write([]byte(data)); err != nil {
panic(err)
}
/*
if err := gz.Flush(); err != nil {
panic(err)
}
*/
if err := gz.Close(); err != nil {
panic(err)
}
游乐场链接https://play.golang.org/p/oafHItGOlDN
显然,Flush + Close 和 Close 给出了不同的结果。
Docs 对于 compress/gzip 包说:
func (z *Writer) Close() 错误
Close 通过将任何未写入的数据刷新到底层 io.Writer 并写入 GZIP 页脚来关闭 Writer。它不会关闭底层的 io.Writer。
这个文档在说什么冲洗?如果Close 足够了,为什么还需要Flush 功能?为什么Close 不调用Flush?
【问题讨论】:
标签: go