Crear Archivo con la Biblioteca Estándar de Rust

RustRustBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, tenemos una función create que abre un archivo en modo de solo escritura. Crea un nuevo archivo o destruye el contenido antiguo si el archivo ya existe. La función utiliza la biblioteca estándar de Rust para manejar las operaciones de archivo. El ejemplo proporcionado demuestra cómo usar la función create para escribir el contenido de una cadena estática LOREM_IPSUM en un archivo llamado "lorem_ipsum.txt". La salida muestra una confirmación de una operación de escritura exitosa, y el contenido del archivo se muestra usando el comando cat.

Nota: Si el laboratorio no especifica un nombre de archivo, puede usar cualquier nombre de archivo que desee. Por ejemplo, puede usar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.


Skills Graph

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

create

La función create abre un archivo en modo de solo escritura. Si el archivo ya existía, el contenido antiguo es destruido. De lo contrario, se crea un nuevo archivo.

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

    // Open a file in write-only mode, returns `io::Result<File>`
    let mut file = match File::create(&path) {
        Err(why) => panic!("couldn't create {}: {}", display, why),
        Ok(file) => file,
    };

    // Write the `LOREM_IPSUM` string to `file`, returns `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),
    }
}

A continuación se muestra la salida exitosa esperada:

$ 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.

(Como en el ejemplo anterior, se le anima a probar este ejemplo en condiciones de error.)

La estructura [OpenOptions] se puede utilizar para configurar cómo se abre un archivo.

Resumen

¡Felicitaciones! Has completado el laboratorio Create. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.