Rust:
Lecture d'un fichier texte

How to:

Pour lire un fichier texte, on utilise principalement std::fs et std::io. Voilà un exemple simple :

use std::fs;
use std::io::{self, Read};

fn main() -> io::Result<()> {
    let mut contenu = String::new();
    
    // Ouvre le fichier et le lit
    fs::File::open("exemple.txt")?.read_to_string(&mut contenu)?;
    
    println!("Contenu du fichier:\n{}", contenu);
    
    Ok(())
}

Si exemple.txt contient “Bonjour, Rust!”, la sortie sera :

Contenu du fichier:
Bonjour, Rust!

Deep Dive

Lire des fichiers est crucial depuis l’aube de l’informatique. En Rust, on privilégie la gestion d’erreur avec Result<T, E>. Cela force à réfléchir aux erreurs durant la programmation, évitant ainsi des surprises déplaisantes à l’exécution.

D’autres moyens existent, tel que std::fs::read_to_string, qui fait le même travail en moins de lignes :

use std::fs;

fn main() -> Result<(), std::io::Error> {
    let contenu = fs::read_to_string("exemple.txt")?;
    println!("Contenu du fichier:\n{}", contenu);
    Ok(())
}

Pour les gros fichiers, on lit ligne par ligne avec BufRead pour économiser de la mémoire :

use std::fs::File;
use std::io::{self, BufRead};

fn main() -> io::Result<()> {
    let fichier = File::open("exemple.txt")?;
    let lecteur = io::BufReader::new(fichier);

    for ligne in lecteur.lines() {
        println!("{}", ligne?);
    }

    Ok(())
}

See Also

Pour approfondir, checkez les liens suivants :