snippetrustMinor
Read file contents to string safely
Viewed 0 times
filereadcontentssafelystring
Problem
I've just started to teach myself Rust. I've written the following code to read a text file and store the contents in a
String. Is this the typical way of doing this? Can anyone suggest any improvements to this?use std::fs::File;
use std::io::Read;
use std::io;
fn main() {
let file_name = "test.txt";
let mut file_contents = String::new();
match get_file_contents(file_name, &mut file_contents) {
Ok(()) => (),
Err(err) => panic!("{}", err)
};
println!("{}", file_contents);
}
fn get_file_contents(name: &str, mut contents: &mut String) -> Result {
let mut f = try!(File::open(name));
try!(f.read_to_string(&mut contents));
Ok(())
}Solution
You could return the string directly:
and
fn main() {
let file_name = "test.txt";
let file_contents = match get_file_contents(file_name) {
Ok(s) => s,
Err(err) => panic!("{}", err)
};
println!("{}", file_contents);
}
fn get_file_contents(name: &str) -> Result {
let mut f = try!(File::open(name));
let mut contents = String::new();
try!(f.read_to_string(&mut contents));
Ok(contents)
}and
unwrap if you don’t intend to handle the error usefully:let file_contents = get_file_contents(file_name).unwrap();Code Snippets
fn main() {
let file_name = "test.txt";
let file_contents = match get_file_contents(file_name) {
Ok(s) => s,
Err(err) => panic!("{}", err)
};
println!("{}", file_contents);
}
fn get_file_contents(name: &str) -> Result<String, io::Error> {
let mut f = try!(File::open(name));
let mut contents = String::new();
try!(f.read_to_string(&mut contents));
Ok(contents)
}let file_contents = get_file_contents(file_name).unwrap();Context
StackExchange Code Review Q#133715, answer score: 5
Revisions (0)
No revisions yet.