I am using this code to append a new line to the end of a file:
let text = \"New line\".to_string();
let mut option = OpenOptions::new();
option.read(true);
Using OpenOptions::append is the clearest way to append to a file:
use std::fs::OpenOptions;
use std::io::prelude::*;
fn main() {
let mut file = OpenOptions::new()
.write(true)
.append(true)
.open("my-file")
.unwrap();
if let Err(e) = writeln!(file, "A new line!") {
eprintln!("Couldn't write to file: {}", e);
}
}
As of Rust 1.8.0 (commit) and RFC 1252, append(true)
implies write(true)
. This should not be a problem anymore.
Before Rust 1.8.0, you must use both write
and append
— the first one allows you to write bytes into a file, the second specifies where the bytes will be written.