英文:
Is there a way in go to convert a []byte slice to an io.Reader?
问题
我刚刚开始学习Go语言,想知道是否可以将一个[]byte切片转换为io.Reader。反过来是可以的,可以使用ioutil.ReadAll进行转换。
如果不行,是否可以在一个byte切片上使用code.google.com/p/go.net/html.Tokenizer?
英文:
<br>
I have just started with go and was wondering, if it is possible to convert an []byte slice to an io.Reader. The Otherway around is possible as shown in ioutil.ReadAll.<br>
If not is it possible to use code.google.com/p/go.net/html.Tokenizer somehow with a byte slice?
答案1
得分: 12
是的,这是一个关于使用bytes.NewBuffer
和io.Reader
的示例代码。它的功能是将一个字符串或[]byte
转换为io.Reader
。代码中使用了base64
包来解码经过base64编码的字符串,并将解码后的内容输出到标准输出。你可以在这个链接中查看完整的示例代码:http://play.golang.org/p/P0VbE8UFpC
英文:
Yes: bytes.NewBuffer
io.Reader Example:
http://play.golang.org/p/P0VbE8UFpC
package main
import (
"bytes"
"encoding/base64"
"io"
"os"
)
func main() {
// A Buffer can turn a string or a []byte into an io.Reader.
buf := bytes.NewBuffer([]byte("R29waGVycyBydWxlIQ=="))
dec := base64.NewDecoder(base64.StdEncoding, buf)
io.Copy(os.Stdout, dec)
}
答案2
得分: 8
你可以使用bytes包中的NewReader函数:
in := bytes.NewReader(b []byte)
https://golang.org/pkg/bytes/#NewReader
英文:
You can use the NewReader in the bytes package:
in := bytes.NewReader(b []byte)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论