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 :