当我第一次潜入Rust时,我开始编写代码将文件的内容转储为字符串,以便以后处理(现在我只是打印出来)
有比现在更清洁的方法吗?似乎我不得不对它过于冗长,但我没有看到任何好的方法来清理它
use std::io;
use std::io::File;
use std::os;
use std::str;
fn main() {
println!("meh");
let filename = &os::args()[1];
let contents = match File::open(&Path::new(filename)).read_to_end() {
Ok(s) => str::from_utf8(s.as_slice()).expect("this shouldn't happen").to_string(),
Err(e) => "".to_string(),
};
println!("ugh {}", contents.to_string());
}
答案 0 :(得分:14)
编者注:审核the linked duplicate以获得更简洁/更清晰答案的维护答案。
Read::read_to_string
是我所知道的最短的:
use std::io::prelude::*;
use std::fs::File;
fn main() {
let mut file = File::open("/etc/hosts").expect("Unable to open the file");
let mut contents = String::new();
file.read_to_string(&mut contents).expect("Unable to read the file");
println!("{}", contents);
}
必须考虑失败案例,Rust喜欢放在前面和中心位置。