私的メモです。
理解足らずによる不備などあるかもしれません。
実行バージョンは 1.79.0 です。
OpenOption
のwrite(bool)
、append(bool)
をtrueにすることで追記の書き込みが可能になります。
追記前のテキスト(sample.txt)
カレーライス
オムライス
書き込みコード
use std::fs::{OpenOptions};
use std::io::{BufWriter, Write};
fn main() {
let f = OpenOptions::new()
.write(true)
.append(true)
.open("sample.txt").unwrap();
let mut bw = BufWriter::new(f);
bw.write("ハンバーグ定食\n".as_bytes()).unwrap();
bw.flush().unwrap();
}
ハンバーグ定食が追記されます
カレーライス
オムライス
ハンバーグ定食
おまけ
書き込み内容も出力するコード
use std::fs::{OpenOptions};
use std::io::{BufRead, BufReader, BufWriter, Write};
fn main() {
let f = OpenOptions::new()
.write(true)
.append(true)
.open("sample.txt").unwrap();
let mut bw = BufWriter::new(f);
bw.write("ハンバーグ定食\n".as_bytes()).unwrap();
bw.flush().unwrap();
let f = OpenOptions::new()
.read(true)
.open("sample.txt").unwrap();
let bf = BufReader::new(f);
let mut vec = Vec::new();
for line in bf.lines() {
vec.push(line.unwrap());
}
println!("{vec:#?}");
}
結果
[
"カレーライス",
"オムライス",
"ハンバーグ定食",
]