如何在Go中将字节切片([]byte)转换为io.Reader?
大家好!我是Go新手,在处理数据流时遇到了问题。我有一个函数接受io.Reader来读取数据,例如从文件或HTTP响应中读取。但在我的情况下,数据已经在内存中,以字节切片([]byte)的形式存在,这是解压归档或处理JSON后得到的。
以下是我尝试做的简化示例:
package main
import (
"fmt"
"io"
"os"
)
func main() {
data := []byte("Hello, World! 这是内存中的测试数据")
// 如何将data传递给期望io.Reader的函数?
// 我尝试直接传递data,但遇到编译错误:
// cannot use data (type []byte) as type io.Reader in argument to processData
processData(data)
}
func processData(r io.Reader) {
content, _ := io.ReadAll(r)
fmt.Println(string(content))
}
我明白[]byte和io.Reader是不同的类型,