相关疑难解决方法(0)

在延迟中关闭 gzip 编写器会导致数据丢失

我使用 golanggzip.NewWriter压缩切片?并defer Close()关闭编写器。但是当从压缩数据中读取时,它会返回unexpected EOF. 代码是:

func main() {

    a := []byte{'a', 'b', 'c', 'd', 'e', 'f'}
    zippedData, err := zipData(a)
    if err != nil {
        panic(err)
    }

    unzippedData, err := unzipData(zippedData)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v\n", unzippedData)

}


Run Code Online (Sandbox Code Playgroud)

zip 函数是:

func zipData(originData []byte) ([]byte, error) {
    var bf bytes.Buffer
    gw := gzip.NewWriter(&bf)

    defer gw.Close()

    _, err := gw.Write(originData)
    if err != nil {
        return nil, errors.New(fmt.Sprintf("gzip data err: %v", err))
    } …
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
323
查看次数

标签 统计

go ×1