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)
- Rust by Example su file I/O: https://doc.rust-lang.org/rust-by-example/std_misc/file.html
- Documentazione ufficiale di
std::fs: https://doc.rust-lang.org/std/fs/ - Documentazione ufficiale di
std::io: https://doc.rust-lang.org/std/io/ - The Rust Programming Language book (capitolo su file I/O): https://doc.rust-lang.org/book/ch12-02-reading-a-file.html