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