2 个版本
0.1.1 | 2021 年 11 月 2 日 |
---|---|
0.1.0 | 2020 年 11 月 4 日 |
在 文本处理 中排名 1707
每月下载 911 次
用于 3 crates
15KB
209 行
当需要在未经审查的流上实现性能和安全时,BufRead 的 read_line 可能存在问题
如果没有换行符,您可能会永远等待或发生内存不足恐慌。即使有,也可能远远超出所需:您必须保留一切,只为到达下一行的开头。
CharReader
是一个缓冲读取器,用于解决这些问题。
- 您可以在没有无限流的情况下安全地读取行
- 如果您只想获取开始部分,则可以读取行而不会存储超过必要的内容
- 有一个
next_char
函数可以只读取一个字符
当您想读取 UTF8 行但不确定数据是否足够好时,它很合适。
在读取一行时,您传递两个参数
- 您想要获取的最大字符数(行中剩余部分将被丢弃)
- 在给出错误之前可以读取的最大字符数(从而保护免受无限流的影响)
所有错误都是 io::Error
- UTF8 错误的类型为
InvalidData
- 超出阈值的一行类型为
Other
替代方案: 如果您事先知道需要多少行,并且始终需要完整的行,则标准 take
方法 BufReader
可以保护您免受内存溢出。