go - read - Convierta el segmento de bytes en io
read text files golang (2)
Para obtener un tipo que implemente
io.Reader
desde un segmento de
[]byte
, puede usar
golang.org/pkg/bytes/#NewReader
en el paquete de
bytes
:
r := bytes.NewReader(byteData)
Esto devolverá un valor de tipo
bytes.Reader
que implementa la
bytes.Reader
(y
io.ReadSeeker
).
No se preocupe por que no sean del mismo "tipo".
io.Reader
es una interfaz y se puede implementar de muchos tipos diferentes.
Para aprender un poco más sobre las interfaces en Go, lea
Go eficaz: interfaces y tipos
.
En mi proyecto, tengo un segmento de bytes de la respuesta de una solicitud.
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
}
Esto funciona, pero si quiero obtener el cuerpo de la respuesta para
io.Reader
, ¿cómo puedo convertir?
Probé con el lector / escritor nuevo pero no tuve éxito.
r := strings(byteData)
Esto también funciona para convertir el
[]byte
en
io.Reader