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


GO ReadFull用法及代码示例

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

用法:

func ReadFull(r Reader, buf []byte)(n int, err error)

ReadFull 将 r 中的 len(buf) 个字节准确地读取到 buf 中。它返回复制的字节数,如果读取的字节数较少,则返回错误。仅当未读取任何字节时,该错误才是 EOF。如果在读取部分但不是全部字节后发生 EOF,则 ReadFull 返回 ErrUnexpectedEOF 在返回时,n == len(buf) 当且仅当 err == nil 时。如果 r 返回至少读取 len(buf) 个字节的错误,则删除该错误。

例子:

package main

import (
    "fmt"
    "io"
    "log"
    "strings"
)

func main() {
    r := strings.NewReader("some io.Reader stream to be read\n")

    buf := make([]byte, 4)
    if _, err := io.ReadFull(r, buf); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s\n", buf)

    // minimal read size bigger than io.Reader stream
    longBuf := make([]byte, 64)
    if _, err := io.ReadFull(r, longBuf); err != nil {
        fmt.Println("error:", err)
    }

}

输出:

some
error: unexpected EOF

相关用法


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