最佳答案
Rust相对较新,我见过太多读取和写入文件的方法。许多都是一些人为他们的博客写的极其混乱的代码片段,我发现99%的例子(甚至在Stack Overflow上)都来自不稳定的构建,不再工作。现在Rust已经稳定了,那么用于读取或写入文件的简单、可读、不恐慌的代码片段是什么呢?
这是我所得到的最接近于读取文本文件的东西,但它仍然没有编译,即使我相当确定我已经包含了我应该包含的所有内容。这是基于我在谷歌+的所有地方找到的一个片段,我唯一改变的是旧的BufferedReader
现在只是BufReader
:
use std::fs::File;
use std::io::BufReader;
use std::path::Path;
fn main() {
let path = Path::new("./textfile");
let mut file = BufReader::new(File::open(&path));
for line in file.lines() {
println!("{}", line);
}
}
编译器抱怨:
error: the trait bound `std::result::Result<std::fs::File, std::io::Error>: std::io::Read` is not satisfied [--explain E0277]
--> src/main.rs:7:20
|>
7 |> let mut file = BufReader::new(File::open(&path));
|> ^^^^^^^^^^^^^^
note: required by `std::io::BufReader::new`
error: no method named `lines` found for type `std::io::BufReader<std::result::Result<std::fs::File, std::io::Error>>` in the current scope
--> src/main.rs:8:22
|>
8 |> for line in file.lines() {
|> ^^^^^
综上所述,我所寻求的是: