bytes.Buffer
- Buffer结构体
- bytes.Buffer实际上就是长度可变的,可读可写的数组buffer
- bytes.Buffer的零值为一个可用的buffer
|
|
Buffer结构体的方法
- Bytes方法返回Buffer未读取的字节数组
|
|
- String方法以字符串的格式返回未读取的buffer数据
|
|
- Len方法返回未读取的字节数
- Cap方法返回buffer数据分配的内存大小
|
|
- Truncate截取
b.buf[:b.off+n]
为新的buf - Reset方法为重置操作,创建一个零值的Buffer
|
|
- Grow方法对buffer的容量进行扩容,n指定扩容的字节数大小
- n为负数会panic, buffer不能扩容也会报错
- grow方法返回的m为写入数据的起点
- tryGrowByReslice方法是在buf本身容量是足够的情况下的扩容操作,只需要重新获取切片接口
- 扩容时是有最小扩容空间的,为64字节,n<64则会被赋值为64,避免小尺度多次扩容的情况
- 扩容时,会优先考虑复用已经分配的切片空间,不能满足其需求则会重新扩容
- makeSlice创建一个新的slice并分配空间,扩容尺寸为原来分配的内存空间的2倍+n个字节
|
|
- Write方法向buf中写入字节数组p
- WriteString向buf中写入字符串,内建方法copy支持复制字符串到字节数组中
|
|
- MinRead为ReadFrom最少读入的字节数
- ReadFrom从实现了io.Reader接口的结构体中读取数据
|
|
- WriteTo 将数据写入到,直到Buffer中数据为空
- WriteByte方法将字节c写入到buffer中
- WriteRune方法将字符r写入到buffer中
|
|
- Read方法从buffer中读取len(p)个字节到字节切片p中
- Next返回从buffer中将要读取到的n个字节切片
- ReadByte从buffer中读取一个字节
- ReadRune从buffer中读取一个字符
|
|
- UnreadRune,撤销ReadRune方法的操作
- UnreadByte,撤销ReadByte方法的操作
- UnreadRune,撤销ReadRune方法的操作
- UnreadRune,撤销ReadRune方法的操作
|
|
- ReadBytes从buffer中读取字节切片直到遇到delim字节,返回结果中包含delim字节
- ReadString从buffer中读取字符串,直到遇到delim字节
|
|
初始化方法
|
|