bufio

bufio #

ReadSlice #

func (b *Reader) ReadSlice(delim byte) (line []byte, err error)

b 中读取,直到遇到第一个 delim 为止,返回一个指向缓存字节的切片。若在寻找到 delim 前发生错误(如 io.EOF),则直接返回当前缓存切片和错误。

注意,该返回值并不是复制后的数组,因此在下次读取后内容会被发生改变。

返回值包不包括 delim?应该不包括。

ReadBytes #

func (b *Reader) ReadBytes(delim byte) ([]byte, error)

ReadSlice 类似,但其返回的是一个复制数据的字节切片(包括 delim )。

ReadString #

func (b *Reader) ReadString(delim byte) (string, error)

ReadBytes 类似,区别仅在于返回的内容转换成了字符串。

ReadLine #

func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error)

底层按行读取的原语。不建议使用,可以通过 ReadBytes('\n')ReadString('\n') 或 Scanner 来代替。

ReadLine 每次返回一行数据,且缓存大小为 4KB。若某一行数据超过 4KB,则会先返回 4KB 内容,并将 isPrefix 返回值设置为 true ,再次调用则会返回后续内容,直到该行结束,isPrefixfalse

ReadLine 返回的数据不会包括换行符 \n\r\n

References #