gpt4 book ai didi

go - 有没有更好的方法将解压缩的数据读入 slice ?

转载 作者:IT王子 更新时间:2023-10-29 02:29:58 27 4
gpt4 key购买 nike

我正在从这样的 http 请求中读取 gzip 数据:

gzr, err := gzip.NewReader(resp.Body)
handle(err)

然后保守地为解压缩的数据分配一个 slice 。

cl := resp.Header.Get("Content-Length")
icl, err := strconv.Atoi(cl)
handle(err)
ubs := make([]byte, icl*3)

最后在阅读后修剪 slice

_, err = gzr.Read(ubs)
ubs = bytes.TrimRightFunc(ubs, sliceFunc)

有更好的方法吗?

最佳答案

对于初学者来说,.Read 返回读取的字节数,因此您可以执行如下操作:

n, err = gzr.Read(ubs)
ubs = ubs[:n]

您还可以使用 bytes.Buffer 池并执行以下操作:

buf := getBufferFromPool()
io.Copy(buf, gzr)

关于go - 有没有更好的方法将解压缩的数据读入 slice ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32260883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com