为了账号安全,请及时绑定邮箱和手机立即绑定

如何将字节推入 Go 中的阅读器?

如何将字节推入 Go 中的阅读器?

Go
小唯快跑啊 2021-07-07 14:01:23
我需要在接收到字节时将它们增量地附加到缓冲区,稍后我可以再次读取它们。像这样的东西:type TwoPassReader struct {  someDataSource SomeDataReader  secondPassReader io.Reader}func (r *TwoPassReader) Read(b []byte) (n int, err error) {  n, err := r.someDataSource.Read(b)  if err == nil {    //XXX: this doesn't actually exist, right?    bytesAppended, writeErr := r.secondPassReader.Write(b)  }  return n, err}func (r *) ReadSecondPass(b []byte) (n int, err error) {  return r.secondPassReader.Read(b)}虽然对此的简单答案是使用bufio.Reader.Peek,但我有一个SomeDataReader无法修改的对象而不是 Reader。将数据放入 a[]byte并在ReadSecondPass调用时返回的最佳解决方案是什么?
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

io.Reader只是一个接口。我们看不到您分配给该结构字段的内容(如果有的话),但bytes.Buffer可能是此处使用的正确类型。


查看完整回答
反对 回复 2021-07-12
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信