Добавление текста в файл в Rust
Допись добавляет байты в конец, не стирая прежнее. Для этого путь открывают с флагом дополнения и правом записи. Если файла еще не было, его создают так же, как при обычном создании.
Сначала запишем базу, затем допишем хвост:
use std::fs::OpenOptions;
use std::io::{self, Write};
fn append_tail() -> io::Result<()> {
let mut file = OpenOptions::new()
.append(true)
.create(true)
.open("note.txt")?;
file.write_all(b"!")?;
Ok(())
}
fn main() -> io::Result<()> {
std::fs::write("note.txt", "hello")?;
append_tail()?;
let text = std::fs::read_to_string("note.txt")?;
println!("{}", text);
Ok(())
}
На экране "hello!". Повторный
запуск снова наращивает конец:
use std::fs::OpenOptions;
use std::io::{self, Write};
fn main() -> io::Result<()> {
let mut file = OpenOptions::new()
.append(true)
.open("note.txt")?;
file.write_all(b"+")?;
Ok(())
}
Дан путь:
let path = "log.txt";
Создайте файл с одной строкой, допишите вторую и выведите весь текст.
Дан путь:
let path = "note.txt";
Сравните допись с полной перезаписью того же пути и опишите разницу.
Оформите открытие на допись в функцию с исходом и верните изменяемый файл.