Sommaiređź“š
Lire un fichier đź“–
Le mot clé use
Premièrement, nous avons besoin d’un fichier a lire, nous allons donc créer un nouveau fichier dans le dossier de notre projet.
# đź“„ hello.txt
World, Hello đź‘‹
Maintenant, nous allons lire le fichier et afficher son contenu.
Premièrement, nous allons importer le struct File
depuis le module std::fs
, qui est la bibliotheque standard pour gerer les fichiers.
Pour importer un élément, on utilise le mot clé use
.
use std::fs::File;
Puis nous allons importer std::io::prelude::*
pour nous permettre d’effectuer des opérations d’écritures et de lectures sur les fichiers.
use std::io::prelude::*;
Le *
signifie que nous allons importer toutes les fonctions du module std::io::prelude
.
Les methodes open
et expect
La methode open
retourne une valeur de type Result
, c’est un type qui représente soit une valeur, soit une erreur.
Nous pouvons utiliser la methode expect
sur une valeur de type Result
pour recuperer la valeur. Il s’agit d’une valeur de type File
.
La methode open
prend un chemin vers le fichier en argument.
let mut file = File::open("hello.txt").expect("Impossible d'ouvrir le fichier");
La methode expect
est utilisee pour gerer les erreurs.
Si le fichier ne peut pas etre ouvert, le programme panic
. Par exemple si le fichier n’existe pas, le programme affiche ce message d’erreur et se terminera.
thread 'main' panicked at 'Impossible d'ouvrir le fichier: Os { code: 2, kind: NotFound, message: "No such file or directory" }', rust.rs:5:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
La methode read_to_string
La methode read_to_string
prend comme argument une référence mutable vers un String
et retourne une valeur de type Result
.
Cette fonction va lire le contenu du fichier et le stocker dans la variable passée en argument.
let mut content = String::new();
file.read_to_string(&mut content).expect("Impossible de lire le fichier");
println!("đź“„ contenu : {}", content);
Sortie :
đź“„ contenu : World, Hello đź‘‹
Accueil 🏠- Section suivante âŹď¸Ź