如果不是用std::io::File和std::io::BufReader进行utf-8编码,是否可以逐行读取文件?
我看了std::io::Lines,它返回了Result<String>,所以我担心,我是否实现了自己的BufReader,做同样的事情,但返回Vec<u8>,或者我可以以某种方式重用std::io::BufReader?
发布于 2017-12-30 14:41:24
您不必重新实现BufReader本身,它提供了您的usecase read_until所需的方法。
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize>您提供自己的Vec<u8>,文件的内容将被追加,直到遇到byte (0x0A是LF)。
有几个潜在的问题:
buf是由您自己决定的。一个简单的while let Ok(_) = reader.read_until(0x0A as u8, buffer)应该可以让你很容易地读取你的文件。
您可以考虑实现一个从编码转换到UTF-8的std::io::Lines等效程序,以提供一个很好的API,尽管它会带来性能成本。
https://stackoverflow.com/questions/48034486
复制相似问题