Créer un fichier avec la bibliothèque standard de Rust

RustRustBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous avons une fonction create qui ouvre un fichier en mode écriture seule. Elle crée soit un nouveau fichier, soit détruit le contenu ancien si le fichier existe déjà. La fonction utilise la bibliothèque standard de Rust pour gérer les opérations de fichier. L'exemple fourni montre comment utiliser la fonction create pour écrire le contenu d'une chaîne statique LOREM_IPSUM dans un fichier nommé "lorem_ipsum.txt". La sortie montre une confirmation d'opération d'écriture réussie, et le contenu du fichier est affiché en utilisant la commande cat.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/MemorySafetyandManagementGroup(["Memory Safety and Management"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust(("Rust")) -.-> rust/ErrorHandlingandDebuggingGroup(["Error Handling and Debugging"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/DataTypesGroup -.-> rust/string_type("String Type") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/MemorySafetyandManagementGroup -.-> rust/lifetime_specifiers("Lifetime Specifiers") rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax") rust/ErrorHandlingandDebuggingGroup -.-> rust/panic_usage("panic! Usage") rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading") subgraph Lab Skills rust/variable_declarations -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/mutable_variables -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/string_type -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/function_syntax -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/expressions_statements -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/lifetime_specifiers -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/method_syntax -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/panic_usage -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} rust/operator_overloading -.-> lab-99271{{"Créer un fichier avec la bibliothèque standard de Rust"}} end

create

La fonction create ouvre un fichier en mode écriture seule. Si le fichier existait déjà, le contenu ancien est détruit. Sinon, un nouveau fichier est créé.

static LOREM_IPSUM: &str =
    "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
";

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

fn main() {
    let path = Path::new("lorem_ipsum.txt");
    let display = path.display();

    // Ouvre un fichier en mode écriture seule, renvoie `io::Result<File>`
    let mut file = match File::create(&path) {
        Err(why) => panic!("couldn't create {}: {}", display, why),
        Ok(file) => file,
    };

    // Écrit la chaîne `LOREM_IPSUM` dans `file`, renvoie `io::Result<()>`
    match file.write_all(LOREM_IPSUM.as_bytes()) {
        Err(why) => panic!("couldn't write to {}: {}", display, why),
        Ok(_) => println!("successfully wrote to {}", display),
    }
}

Voici la sortie réussie attendue :

$ rustc create.rs && ./create
successfully wrote to lorem_ipsum.txt
$ cat lorem_ipsum.txt
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

(Comme dans l'exemple précédent, vous êtes encouragé à tester cet exemple dans des conditions de défaillance.)

La structure [OpenOptions] peut être utilisée pour configurer la manière dont un fichier est ouvert.

Résumé

Félicitations ! Vous avez terminé le laboratoire Create. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.