【发布时间】:2017-02-09 00:03:35
【问题描述】:
我想使用包含图像的request.Body(type io.ReadCloser)。
我不想使用ioutil.ReadAll(),因为我想将此正文直接写入文件并对其进行解码,所以我只想使用对内容的引用来传递给进一步的函数调用,
我尝试创建多个阅读器实例,如下所示
package main
import (
"io/ioutil"
"log"
"strings"
)
func main() {
r := strings.NewReader("some io.Reader stream to be read\n")
a := &r
b := &r
log.Println(ioutil.ReadAll(*a))
log.Println(ioutil.ReadAll(*b))
}
但在第二次调用中,它总是会导致nil。
请帮助我如何为同一个读者传递多个单独的参考?
【问题讨论】:
-
按您要求的方式撤消。使用
io.TeeReader捕获您阅读的内容以供进一步参考,例如在bytes.Buffer.