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