在Rust中逐行读取大文件

Piw*_*iwo 13 rust

我的Rust程序旨在逐行读取非常大(最多几GB)的简单文本文件.问题是,此文件太大而无法立即读取,或将所有行传输到a Vec<String>.

在Rust中处理这个问题的惯用方法是什么?

Fre*_*ios 34

您可以在互联网上找到示例:

use std::fs::File;
use std::io::{self, prelude::*, BufReader};

fn main() -> io::Result<()> {
    let file = File::open("foo.txt")?;
    let reader = BufReader::new(file);

    for line in reader.lines() {
        println!("{}", line?);
    }

    Ok(())
}
Run Code Online (Sandbox Code Playgroud)

BufRead是你需要的功能.请注意,如文档中所述,您不会返回换行符.

  • @Awalias 我更新了我的答案以使其更加清晰。如果您不明白具体的内容,请告诉我什么。 (3认同)
  • 注意,换行被认为是LF或CR,后跟LF。 (2认同)
  • 开始学习 Rust,这非常有帮助且内容丰富 (2认同)

归档时间:

查看次数:

14863 次

最近记录:

7 年 前