前端之家收集整理的这篇文章主要介绍了
golang 中bufio包的用法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本文转自GOlove博客:http://www.cnblogs.com/golove/p/3282667.html 并在此基础上进行了一些添加修改.
bufio 包中的函数和方法
// bufio 包实现了带缓存的 I/O 操作
// 它封装一个 io.Reader 或 io.Writer 对象
// 使其具有缓存和一些文本读写功能
------------------------------------------------------------
// bufio.go
------------------------------------------------------------
- typeReaderstruct{
- buf[]byte
- rdio.Reader//readerprovidedbytheclient
- r,wint//bufreadandwritepositions
- errerror
- lastByteint
- lastRuneSizeint
- }
@H_
502_68@
// NewReaderSize 将 rd 封装成一个拥有 size 大小缓存的 bufio.Reader 对象
@H_
502_68@// 如果 rd 的基类型就是 bufio.Reader 类型,而且拥有足够的缓存
@H_
502_68@// 则直接将 rd 转换为基类型并返回
@H_
502_68@func NewReaderSize(rd io.Reader,size int) *Reader
@H_
502_68@
@H_
502_68@// NewReader 相当于 NewReaderSize(rd,4096)
@H_
502_68@func NewReader(rd io.Reader) *Reader
@H_
502_68@------------------------------------------------------------
@H_
502_68@// Peek 返回缓存的一个切片,该切片引用缓存中前 n 字节数据
@H_
502_68@// 该操作不会将数据读出,只是引用
@H_
502_68@// 引用的数据在下一次读取操作之前是有效的
@H_
502_68@// 如果引用的数据长度小于 n,则返回一个
错误信息
@H_
502_68@// 如果 n 大于缓存的总大小,则返回 ErrBufferFull
@H_
502_68@// 通过 Peek 的返回值,可以
修改缓存中的数据
@H_
502_68@// 但是不能
修改底层 io.Reader 中的数据
@H_
502_68@
[html]
view plain
copy