Метод append
Метод append класса OpenOptions
устанавливает флаг, который позволяет открывать
файл в режиме добавления. Когда этот флаг
установлен, все записи будут производиться
в конец файла, а существующее содержимое
файла не будет перезаписано. Параметром
метод принимает булево значение: true
включает режим добавления, а false
отключает его. Метод возвращает изменённую
ссылку на OpenOptions, что позволяет
выстраивать цепочку вызовов.
Синтаксис
OpenOptions::new().append(true).open(path)
Пример
Давайте откроем файл в режиме добавления и запишем в него строку. Для этого создадим файл, а затем допишем в него данные:
use std::fs::OpenOptions;
use std::io::Write;
fn main()
{
let mut file = OpenOptions::new()
.append(true)
.create(true)
.open("test.txt")
.unwrap();
file.write_all(b"abcde").unwrap();
}
После выполнения кода данные "abcde"
будут добавлены в конец файла test.txt.
Если файл уже содержал данные, они сохранятся,
а новая строка допишется после них.
Пример
Давайте проверим, что при повторном открытии
с флагом append старое содержимое
файла не перезаписывается. Запишем в файл
две строки последовательно:
use std::fs::OpenOptions;
use std::io::Write;
fn main()
{
let mut file = OpenOptions::new()
.append(true)
.create(true)
.open("test.txt")
.unwrap();
file.write_all(b"12345").unwrap();
let mut file2 = OpenOptions::new()
.append(true)
.create(true)
.open("test.txt")
.unwrap();
file2.write_all(b"abcde").unwrap();
}
В результате в файле test.txt окажется
строка:
"12345abcde"
Пример
Давайте выведем содержимое файла после
добавления данных, чтобы убедиться в
результате работы метода append:
use std::fs;
use std::fs::OpenOptions;
use std::io::Write;
fn main()
{
let mut file = OpenOptions::new()
.append(true)
.create(true)
.open("test.txt")
.unwrap();
file.write_all(b"abcde").unwrap();
let res = fs::read_to_string("test.txt")
.unwrap();
println!("{}", res);
}
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
OpenOptions,
который настраивает параметры открытия файла -
метод
write,
который устанавливает режим записи в файл -
метод
create,
который создаёт файл, если он не существует -
метод
open,
который открывает файл с заданными параметрами