My Rust程序旨在逐行读取非常大(最多几GB)的简单文本文件。问题是,此文件太大而无法立即读取,或将所有行转移到Vec<String>
。
在Rust中处理这个问题的惯用方法是什么?
答案 0 :(得分:21)
您可以找到示例on the internet:
use std::fs::File;
use std::io::{BufRead, BufReader, Result};
fn main() -> Result<()> {
let file = File::open("file.txt")?;
for line in BufReader::new(file).lines() {
println!("{}", line?);
}
Ok(())
}
BufReader.lines()
是您需要的功能。请注意,您不返回了换行符,如文档中所述。