【问题标题】:Write (or copy) the contents of one bytes.Buffer to another将一个 bytes.Buffer 的内容写入(或复制)到另一个
【发布时间】:2021-12-13 21:29:18
【问题描述】:

我有 2 个bytes.Buffer 实例。我想将第二个(我们称之为src)的结果复制到第一个(dst

显然io.Copy 方法在这种情况下不起作用,因为它需要一个io.Writer 接口,而bytes.Buffer 没有实现相应的方法。

io.CopyBuffer 方法也是如此。

将一个bytes.Buffer 的内容复制到另一个的最合适的方法是什么?

【问题讨论】:

  • io.Copy(&dst, &src)

标签: go writer


【解决方案1】:

bytes.Buffer 确实实现了io.Writer,但前提是它是一个指针:

package main
import "bytes"

func main() {
   a := bytes.NewBufferString("hello world")
   b := new(bytes.Buffer)
   b.ReadFrom(a)
   println(b.String())
}

https://godocs.io/bytes#Buffer.Write

【讨论】:

    【解决方案2】:

    使用

    dst.Write(src.Bytes())
    

    src 中的所有字节写入dst,其中srcdst*bytes.Bufferbytes.Buffer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多