use std::fs::{File, OpenOptions};
use std::io::{self, Read, Write};
use std::path::Path;
fn main() -> io::Result<()> {
// ファイル名を指定して、Pathオブジェクトを作成する
let path = Path::new("example.txt");
// ファイルが存在する場合は開く、存在しない場合は作成して開く
let mut file = match File::open(&path) {
Ok(file) => file,
Err(_) => {
// ファイルが存在しない場合は作成する
let mut file = File::create(&path)?;
// ファイルに"Hello, world"という文字列を書き込む
file.write_all(b"Hello, world")?;
// ファイルに書き込まれたデータをディスクに書き出す
file.flush()?;
file
}
};
// ファイルの内容を文字列として読み込む
let mut contents = String::new();
file.read_to_string(&mut contents)?;
// ファイルの内容を表示する
println!("{}", contents);
// ファイルを書き込みモードで開く
let mut file = OpenOptions::new().write(true).open(&path)?;
// ファイルに文字列を書き込む
file.write_all(b"test,test,test")?;
// ファイルに書き込まれたデータをディスクに書き出す
file.flush()?;
// ファイルを読み取りモードで開く
let mut file = OpenOptions::new().read(true).open(&path)?;
// ファイルの内容を文字列として読み込む
let mut contents_test = String::new();
file.read_to_string(&mut contents_test)?;
// ファイルの内容を表示する
println!("{}", contents_test);
// 正常終了を表すResultオブジェクトを返す
Ok(())
}
example.txtを置き換えて色々試してみて下さい。
コメント