Go 中最有效的方式将 io.ReadCloser 流式传输到文件?

给定一个 io.ReadCloser,例如从 HTTP 请求的响应中,在内存开销和代码可读性方面将响应流式传输到文件的最有效方法是什么?


蝴蝶不菲
浏览 934回答 2
2回答

莫回无

io.Copy在代码方面无疑是最高效的;你只需要outFile, err := os.Create(filename)// handle errdefer outFile.Close()_, err = io.Copy(outFile, res.Body)// handle err它在 CPU 和内存方面也可能非常高效。如果需要,您可以查看io.Copy的实现;假设主体没有实现WriteTo并且文件没有实现ReadFrom(快速浏览一下,他们没有实现),Copy将一次复制高达 32kB 的块。更大的块可能会使用更少的 CPU,但会使用更多的内存;他们选择的价值似乎是一个很好的权衡。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go