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
相关用法
- GO ReadAll用法及代码示例
- GO ReadMessage用法及代码示例
- GO Read用法及代码示例
- GO ReadFile用法及代码示例
- GO Reader.Multistream用法及代码示例
- GO Reader.Len用法及代码示例
- GO Reader用法及代码示例
- GO ReadDir用法及代码示例
- GO ReadFull用法及代码示例
- GO Reader.ReadAll用法及代码示例
- GO Regexp.FindString用法及代码示例
- GO Regexp.FindAllIndex用法及代码示例
- GO ResponseRecorder用法及代码示例
- GO ReverseBytes64用法及代码示例
- GO ReverseBytes16用法及代码示例
- GO Regexp.ReplaceAllLiteralString用法及代码示例
- GO Regexp.FindStringSubmatch用法及代码示例
- GO Regexp.FindAllString用法及代码示例
- GO Regexp.ExpandString用法及代码示例
- GO ResponseWriter用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 ReadAtLeast。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。