是否可以在缓冲区顶部写入?

没有帽子的用户:
buff := bytes.NewBuffer(somebytes)

怎样写在上面buff目前,我正在创建一个新的缓冲区。这是正确的方法吗?

newBuff := bytes.NewBuffer(otherbytes) 
newBuff.ReadFrom(buff)
icza:

bytes.NewBuffer()返回*Buffer*Buffer实现io.Writer(和io.Reader),因此您可以通过调用其Write()WriteString()方法来简单地对其进行写入

例:

somebytes := []byte("abc")
buff := bytes.NewBuffer(somebytes)
buff.Write([]byte("def"))
fmt.Println(buff)

预期的输出(在Go Playground上尝试):

abcdef

如果Buffer要从空缓冲区开始,则可以简单地创建一个空结构(并获取其地址):

buff := &bytes.Buffer{}

如果要“覆盖”缓冲区的当前内容,则可以使用Buffer.Reset()方法或等效Buffer.Truncate(0)调用。

请注意,重置或截断缓冲区将丢弃内容(或在情况下仅丢弃一部分内容Truncate()),但是在后台分配的缓冲区(字节片)将保留并重用。

注意:

您真正想做的事情是不可能直接实现的:想象一下,如果您想在现有内容之前插入一些数据,那么每次您在其前面写入/插入某些内容时,都必须转移现有内容。这不是很有效。

而是在内创建您的身体Buffer完成后,您将知道标题是什么。在another中创建头,Buffer完成后,将主体(从第一个Buffer复制(写入)到已经包含头的第二个主体中

或者,如果您不需要存储整个数据,则无需Buffer为标题创建第二个主体准备好后,将标题写入输出,然后从中写入主体Buffer

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在仍写入另一个绘制缓冲区的同时丢弃一个绘制缓冲区?

直接写入std :: strings缓冲区是否安全?

将缓冲区写入Java通道:是否是线程安全的?

模具传递是否写入颜色缓冲区?

OpenCL内核随机写入__global缓冲区是否安全?

是否在缓冲区填充或“实时”时写入日志文件?

整数的大写对于缓冲区写入是否重要?

是否可以区分暂存缓冲区和新的[no name]缓冲区?

是否可以在没有写入/读取的情况下命名当前表示为缓冲区的文件?

是否可以在C ++中以零拷贝拼接缓冲区?

是否可以禁止特定缓冲区的字体锁定?

PHP:是否可以获取非阻塞输出缓冲区?

vsynch的交换缓冲区是否可以保证同步?

是否可以在C中使用较大的char缓冲区

vscode:是否可以在文本缓冲区中显示图像?

是否可以 POST 请求响应类型“数组缓冲区”?

Bash命令写入临时缓冲区

内置追加与字节。缓冲区写入

将流写入缓冲区对象

写入安全的 UART 中断缓冲区

写入OpenGL模板缓冲区

BigQuery writeTableRows 始终写入缓冲区

将文件写入缓冲区

Python 写入缓冲区而不是文件

gdb 可以打印 C write() 函数写入的缓冲区的内容吗?

是否使用写合并缓冲区对Intel上的WB内存区域进行常规写入?

在不与OpenCL同步的情况下写入全局缓冲区是否可行?

D-是否有用于读取和写入字节的字节缓冲区?

Java是否有缓冲区溢出?