Datei mit der Rust-Standardbibliothek erstellen

RustRustBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab haben wir eine create-Funktion, die eine Datei im schreibgeschützten Modus öffnet. Sie erstellt entweder eine neue Datei oder zerstört den alten Inhalt, wenn die Datei bereits existiert. Die Funktion verwendet die Standardbibliothek von Rust, um Dateioperationen zu verarbeiten. Das bereitgestellte Beispiel zeigt, wie die create-Funktion verwendet wird, um den Inhalt einer statischen LOREM_IPSUM-Zeichenfolge in eine Datei namens "lorem_ipsum.txt" zu schreiben. Die Ausgabe zeigt eine Bestätigung für einen erfolgreichen Schreibvorgang, und der Inhalt der Datei wird mit dem Befehl cat angezeigt.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden, es mit rustc main.rs &&./main kompilieren und ausführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/MemorySafetyandManagementGroup(["Memory Safety and Management"]) rust(("Rust")) -.-> rust/ErrorHandlingandDebuggingGroup(["Error Handling and Debugging"]) rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) 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{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/mutable_variables -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/string_type -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/function_syntax -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/expressions_statements -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/lifetime_specifiers -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/method_syntax -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/panic_usage -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} rust/operator_overloading -.-> lab-99271{{"Datei mit der Rust-Standardbibliothek erstellen"}} end

create

Die create-Funktion öffnet eine Datei im schreibgeschützten Modus. Wenn die Datei bereits existierte, wird der alte Inhalt zerstört. Andernfalls wird eine neue Datei erstellt.

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();

    // Öffnet eine Datei im schreibgeschützten Modus, gibt `io::Result<File>` zurück
    let mut file = match File::create(&path) {
        Err(why) => panic!("konnte {} nicht erstellen: {}", display, why),
        Ok(file) => file,
    };

    // Schreibt die `LOREM_IPSUM`-Zeichenfolge in `file`, gibt `io::Result<()>` zurück
    match file.write_all(LOREM_IPSUM.as_bytes()) {
        Err(why) => panic!("konnte nicht in {} schreiben: {}", display, why),
        Ok(_) => println!("erfolgreich in {} geschrieben", display),
    }
}

Hier ist die erwartete erfolgreiche Ausgabe:

$ rustc create.rs && ./create
erfolgreich in lorem_ipsum.txt geschrieben
$ 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.

(Wie im vorherigen Beispiel wird Ihnen empfohlen, dieses Beispiel unter Fehlbedingungen zu testen.)

Die [OpenOptions]-Struktur kann verwendet werden, um zu konfigurieren, wie eine Datei geöffnet wird.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Create-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.