去检查bufio阅读器是否为空

var r bufio.Reader

如何检查是否r没有更多数据(为空、已耗尽)?

我知道这可能需要阻止,直到知道该信息为止。

谷歌搜索找不到任何东西。我认为该Peek函数对于查看是否有更多数据很有用,但这似乎只能查看底层缓冲区(如果存在)。我也可以尝试Read一个字节然后调用UnreadByte,但这非常混乱和不清楚,有没有更好的选择?


呼啦一阵风
浏览 156回答 2
2回答

慕丝7291255

如果r.Peek(1)返回数据,则下一次调用Read将返回数据。如果缓冲区中没有数据,则Peek调用底层读取器并将阻塞直到数据可用或出现错误。

弑天下

如果我正确理解你的问题,这会起作用吗?// func (*Reader) Size() int// Size returns the size of the underlying buffer in bytes.size := r.Size()// func (*Reader) Buffered() int// Buffered returns the number of bytes that can be read from the current bufferbuffered := r.Buffered()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go