Создание файла в Rust
Новый файл создают, чтобы потом писать в него по частям. Команда создания открывает путь на запись и отдает владеющее значение файла. Если объект уже был, его содержимое обычно обнуляют, как при новой записи.
Создадим файл и запишем байты через дескриптор:
use std::fs::File;
use std::io::{self, Write};
fn make_note() -> io::Result<()> {
let mut file = File::create("note.txt")?;
file.write_all(b"draft")?;
Ok(())
}
fn main() -> io::Result<()> {
make_note()?;
Ok(())
}
Значение File закроется, когда
make_note закончится, даже если
явно не вызывать закрытие:
use std::fs::File;
use std::io;
fn open_empty() -> io::Result<File> {
File::create("data/new.txt")
}
fn main() -> io::Result<()> {
let _file = open_empty()?;
Ok(())
}
Дан путь:
let path = "docs/out.txt";
Создайте файл, запишите слово "ok"
и проверьте чтением всего текста.
Дан путь:
let path = "note.txt";
Создайте файл дважды подряд и скажите, что случится с прежним текстом.
Вынесите создание в функцию с исходом и верните из нее значение файла вызывающему коду.