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


GO ReadAtLeast用法及代码示例


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

用法:

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

ReadAtLeast 从 r 读取到 buf,直到它至少读取了 min 字节。它返回复制的字节数,如果读取的字节数较少,则返回错误。仅当未读取任何字节时,该错误才是 EOF。如果在读取少于 min 字节后发生 EOF,ReadAtLeast 返回 ErrUnexpectedEOF 如果 min 大于 buf 的长度,ReadAtLeast 返回 ErrShortBuffer 返回时,n >= min 当且仅当 err == nil .如果 r 返回读取至少 min 字节的错误,则删除该错误。

例子:

package main

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

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

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

	// buffer smaller than minimal read size.
	shortBuf := make([]byte, 3)
	if _, err := io.ReadAtLeast(r, shortBuf, 4); err != nil {
		fmt.Println("error:", err)
	}

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

}

输出:

some io.Reader
error: short buffer
error: unexpected EOF

相关用法


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