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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。