Lettura di un file di testo

Rust:
Lettura di un file di testo

How to: (Come fare:)

use std::fs;
use std::io::{self, Read};

fn main() -> io::Result<()> {
    let content = fs::read_to_string("esempio.txt")?; // Leggere tutto il file
    println!("Contenuto del file:\n{}", content);
  
    let mut file = fs::File::open("esempio.txt")?; // Leggere il file con più controllo
    let mut buffer = String::new();
    file.read_to_string(&mut buffer)?;
    println!("Contenuto letto con file::open:\n{}", buffer);
    
    Ok(())
}

Output:

Contenuto del file:
Ciao, questo è il contenuto del file di esempio!

Contenuto letto con file::open:
Ciao, questo è il contenuto del file di esempio!

Deep Dive (Analisi Approfondita)

Rust offre diverse strutture e moduli per la lettura dei file di testo. std::fs::File e std::io::prelude::* sono quelli basilari. Àncora da tempi di Rust 1.0, il concetto di ownership e borrowing di Rust – regole che gestiscono l’accesso ai dati – sono fondamentali anche nella lettura dei file, per evitare errori come i “data races”.

In alternativa a read_to_string(), possiamo usare metodi come read_lines() o persino accedere a basso livello con buffer di bytes per ottimizzare la lettura in casi specifici.

La combinazione di File::open() e read_to_string() permette di gestire meglio possibili errori e offre più controllo attraverso i vari trait di Read e BufRead.

See Also (Vedi Anche)