当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO CopyBuffer用法及代码示例


GO语言"io"包中"CopyBuffer"函数的用法及代码示例。

用法:

func CopyBuffer(dst Writer, src Reader, buf []byte)(written int64, err error)

CopyBuffer 与 Copy 相同,只是它通过提供的缓冲区(如果需要)进行暂存,而不是分配临时缓冲区。如果 buf 为 nil,则分配一个;否则,如果它的长度为零,CopyBuffer 会发生Panics。

如果 src 实现 WriterTo 或 dst 实现 ReaderFrom,则不会使用 buf 执行复制。

例子:

package main

import (
	"io"
	"log"
	"os"
	"strings"
)

func main() {
	r1 := strings.NewReader("first reader\n")
	r2 := strings.NewReader("second reader\n")
	buf := make([]byte, 8)

	// buf is used here...
	if _, err := io.CopyBuffer(os.Stdout, r1, buf); err != nil {
		log.Fatal(err)
	}

	// ... reused here also. No need to allocate an extra buffer.
	if _, err := io.CopyBuffer(os.Stdout, r2, buf); err != nil {
		log.Fatal(err)
	}

}

输出:

first reader
second reader

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 CopyBuffer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。