Метод sync_data
Метод sync_data класса File
синхронизирует данные файла с физическим
носителем. Он гарантирует, что все
записанные данные будут сохранены на диске,
но при этом не обновляет метаданные файла,
такие как время последнего доступа или
размер. Метод не принимает параметров и
возвращает Result<(), Error>.
Этот метод полезен, когда важна
производительность, поскольку синхронизация
только данных обычно быстрее, чем полная
синхронизация с метаданными через
sync_all.
Синтаксис
file.sync_data()
Пример
Давайте создадим файл, запишем в него данные и синхронизируем их с диском:
use std::fs::File;
use std::io::Write;
fn main()
{
let mut file = File::create("test.txt").unwrap();
file.write_all(b"abcde").unwrap();
file.sync_data().unwrap();
println!("Data synchronized");
}
Результат выполнения кода:
"Data synchronized"
Пример
Давайте откроем файл, запишем данные, синхронизируем их и проверим содержимое:
use std::fs::File;
use std::io::{Write, Read};
fn main()
{
let mut file = File::create("data.txt").unwrap();
file.write_all(b"12345").unwrap();
file.sync_data().unwrap();
let mut file = File::open("data.txt").unwrap();
let mut content = String::new();
file.read_to_string(&mut content).unwrap();
println!("{}", content);
}
Результат выполнения кода:
"12345"