Rust:
Rédiger un fichier texte

Comment faire :

La bibliothèque standard de Rust fournit des outils robustes pour la manipulation de fichiers, encapsulés principalement dans les modules std::fs et std::io. Voici un exemple de base pour créer et écrire dans un fichier texte :

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

fn main() -> std::io::Result<()> {
    let mut file = File::create("bonjour.txt")?;
    file.write_all(b"Bonjour, monde !")?;
    Ok(())
}

Après avoir exécuté ce code, vous trouverez un fichier nommé bonjour.txt avec le contenu “Bonjour, monde !”.

Pour des scénarios plus complexes, tels que l’ajout à un fichier ou la gestion de données plus volumineuses de manière efficace, Rust offre des fonctionnalités supplémentaires. Voici comment ajouter du texte à un fichier existant :

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

fn main() -> std::io::Result<()> {
    let mut file = OpenOptions::new()
        .write(true)
        .append(true)
        .open("bonjour.txt")?;
        
    file.write_all(b" Ajout de plus de texte.")?;
    Ok(())
}

L’exécution de ceci ajoutera " Ajout de plus de texte." à la fin de bonjour.txt.

Dans certains cas, l’utilisation de bibliothèques tierces peut simplifier les opérations sur les fichiers. La crate serde, combinée à serde_json, par exemple, permet de sérialiser et désérialiser des structures de données vers et à partir du format JSON, offrant une approche de haut niveau pour l’écriture de fichiers :

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

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

fn main() -> std::io::Result<()> {
    let utilisateur = Utilisateur { id: 1, nom: "Jane Doe".into() };
    let fichier = File::create("utilisateur.json")?;
    serde_json::to_writer(fichier, &utilisateur)?;
    Ok(())
}

Après avoir exécuté le code ci-dessus, utilisateur.json contiendra une représentation JSON de la structure Utilisateur. Notez que l’utilisation de serde et serde_json nécessite d’ajouter ces crates à votre Cargo.toml.

Écrire des fichiers texte en Rust, que ce soit via la bibliothèque standard ou avec l’aide de crates externes, est une manière à la fois simple et puissante de gérer la persistance des données dans vos applications.