Rust:
Написання текстового файлу

Як це зробити:

Стандартна бібліотека Rust надає потужні інструменти для маніпуляції з файлами, які в основному інкапсульовані в модулях std::fs та std::io. Ось простий приклад створення та запису в текстовий файл:

use std::fs::File;
use std::io::prelude::*;

fn main() -> std::io::Result<()> {
    let mut file = File::create("hello.txt")?;
    file.write_all(b"Привіт, світ!")?;
    Ok(())
}

Після виконання цього коду ви знайдете файл під назвою hello.txt з вмістом “Привіт, світ!”.

Для більш складних сценаріїв, як-от додавання до файлу або ефективна обробка великих даних, Rust пропонує додаткові функціональні можливості. Ось як додати текст до існуючого файлу:

use std::fs::OpenOptions;
use std::io::prelude::*;

fn main() -> std::io::Result<()> {
    let mut file = OpenOptions::new()
        .write(true)
        .append(true)
        .open("hello.txt")?;
        
    file.write_all(b" Додаємо більше тексту.")?;
    Ok(())
}

Виконання цього додасть " Додаємо більше тексту." в кінець hello.txt.

У деяких випадках, використання сторонніх бібліотек може спростити операції з файлами. Наприклад, крейт serde, поєднаний з serde_json, дозволяє серіалізувати та десеріалізувати структури даних до і з формату JSON, пропонуючи високорівневий підхід до запису файлів:

use serde::{Serialize, Deserialize};
use serde_json;
use std::fs::File;

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,
    name: String,
}

fn main() -> std::io::Result<()> {
    let user = User { id: 1, name: "Жанна Доу".into() };
    let file = File::create("user.json")?;
    serde_json::to_writer(file, &user)?;
    Ok(())
}

Після виконання вищевказаного коду, user.json міститиме представлення структури User у форматі JSON. Зверніть увагу, що використання serde та serde_json вимагає додавання цих крейтів до вашого Cargo.toml.

Запис текстових файлів у Rust, чи то через стандартну бібліотеку, чи за допомогою зовнішніх крейтів, є простим, але потужним способом управління збереженням даних у ваших додатках.