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, чи то через стандартну бібліотеку, чи за допомогою зовнішніх крейтів, є простим, але потужним способом управління збереженням даних у ваших додатках.