将字节数组转换为golang中的io.read
在我的项目中,我有一个来自请求响应的字节数组。
defer resp.Body.Close() if resp.StatusCode != http.StatusOK { log.Println("StatusCode为" + strconv.Itoa(resp.StatusCode)) return } respByte, err := ioutil.ReadAll(resp.Body) if err != nil { log.Println("fail to read response data") return }
这工作,但如果我想获得响应的身体io.read
,我该如何转换? 我尝试了新的读者/作家,但没有成功。
要得到一个从[]byte
切片实现io.Reader
的types,可以在bytes
包中使用bytes.NewReader
:
r := bytes.NewReader(byteData)
这将返回一个types为bytes.Reader
实现io.Reader
(和io.ReadSeeker
)接口的值。
不要担心他们不是相同的“types”。 io.Reader
是一个接口,可以通过许多不同的types来实现。 要了解更多关于Go的接口,请阅读Effective Go:Interfaces and Types 。
r:=string(byteData)
这也可以将[]字节转换为io.reader