ファイル内容を読み込む
std::fs::read_to_stringを使います。これはResultを返し、Okな時はファイルの中身、Errな時はstd::io::Errorを返します。
use std::fs;
// `foo.txt`の中身は`foo`
let foo = fs::read_to_string("foo.txt").unwrap();
assert_eq!(foo, "foo");存在しないファイルパスを渡してしまうとErrを返します。
または、sttd::fs::Fileとstd::io::BufReaderで読み校方法もあります。BufReaderの::read_to_stringにはstd::io::Readがスコープに必要な為それも持ってきます。
use std::fs::File;
use std::io::{BufReader, Read};
let file = File::open("foo.txt").unwrap();
let mut buf_reader = BufReader::new(file);
let mut contents = String::new();
buf_reader.read_to_string(&mut contents).unwrap();
assert_eq!(contents, "foo");ファイルへ内容を書き込む
fs::File::createによって書き込み専用モードで対象のFileを取得し、その::write_allへ書き込みたい文字列を渡します。ですが、::write_allはstd::io::Writeが持つメソッドで使うためにはstd::io::Writeの取り込みが必要です。
use std::fs;
use std::io::Write;
let mut file = fs::File::create("foo.txt").unwrap();
file.write_all(b"nju33").unwrap();
let contents = fs::read_to_string("foo.txt").unwrap();
assert_eq!(contents, "nju33");