Go bufio包

110 阅读2分钟

文章首发于个人博客

Reader

方法含义说明
Buffered返回从当前缓冲区内可以读取的字节数量
Discard跳过接下来的n字节
Peek查看接下来的n字节不移动读指针
Readbufio.Reader中读取内容到字节切片
ReadBytebufio.Reader中读取一个字节
ReadBytesbufio.Reader中读取数据,直到遇到指定的分隔符delim包含分隔符
ReadLinebufio.Reader中读取一行数据不包含换行符,建议使用Reader.ReadBytes('\n')Reader.ReadString('\n')或者Scanner
ReadRunebufio.Reader中读取一个rune
ReadSlicebufio.Reader中读取数据,直到遇到指定的分隔符delim包含分隔符,建议使用Reader.ReadBytesReadString
ReadStringbufio.Reader中读取数据,直到遇到指定的分隔符delim包含分隔符
Reset重置bufio.Reader
Size返回底层缓冲区的大小
UnreadByte回退最后读取的一个字节
UnreadRune回退最后读取的一个rune
WriteTo将数据从bufio.Reader写入到io.Writer

Writer

方法含义说明
Available返回当前缓冲区中可以写入的字节数量
AvailableBuffer返回一个空的缓冲区,容量是Available返回的值
Buffered返回当前缓冲区中已经写入的字节数量
Flush将缓冲区中的数据写入到io.Writer
ReadFromio.Reader读取数据到bufio.Writer
Reset重置bufio.Writer
Size返回底层缓冲区的大小
Write将数据写入bufio.Writer
WriteByte将一个字节写入bufio.Writer
WriteRune将一个rune写入bufio.Writer
WriteString将一个字符串写入bufio.Writer

Scanner

方法含义说明
Buffer设置在扫描时要使用的初始缓冲区,及在扫描过程中可能分配的最大缓冲区大小
Bytes返回由最近一次调用Scanner.Scan生成的令牌不会进行内存分配
Err返回扫描过程中遇到的第一个非EOF错误
Scan使扫描器前进到下一个令牌
Split设置扫描器的分割函数在扫描已经开始之后调用会触发panic
Text返回由最近一次调用Scanner.Scan生成的令牌进行内存分配

包函数

方法含义说明
NewReaderio.Reader创建一个带缓冲区的bufio.Reader
NewReaderSizeio.Reader创建一个带缓冲区的bufio.Reader,并指定缓冲区的大小
NewWriterio.Writer创建一个带缓冲区的bufio.Writer
NewWriterSizeio.Writer创建一个带缓冲区的bufio.Writer,并指定缓冲区的大小
NewReadWriterio.Readerio.Writer包装成一个带缓冲区的bufio.ReadWriter
ScanBytesbufio.Scanner的一种分割函数,将输入数据按字节进行分割
ScanLinesbufio.Scanner的一种分割函数,将输入文本按行进行分割会移除行尾的换行符
ScanRunesbufio.Scanner的一种分割函数,将输入数据按rune进行分割
ScanWordsbufio.Scanner的一种分割函数,将输入文本按以空格分隔的单词进行分割会移除单词之间的空格