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
,再次调用则会返回后续内容,直到该行结束,isPrefix
为 false
。
ReadLine 返回的数据不会包括换行符 \n
或 \r\n
。