Operazioni su file in Rust
Oggi vediamo come eseguire le classiche operazioni sui file in Rust.
Questo il processo del nostro programmino:
- prima controlliamo se il file esiste, ed in caso lo cancelliamo
- poi ne creiamo uno e ci scriviamo dentro qualcosa
- leggiamo il contenuto
- aggiungiamo del testo
- leggiamo di nuovo il contenuto
Questo il codice:
use std::path::Path;
use std::fs::{remove_file, File, OpenOptions};
use std::io::{Write, Read};
fn main() {
let file_pat = "test.txt";
let exists = Path::new(file_pat).exists();
if exists {
remove_file(file_pat).expect("Impossibile rimuovere il file");
}
write(file_pat.to_string());
read(file_pat.to_string());
appen(file_pat.to_string());
read(file_pat.to_string());
}
fn write(file_pat: String) {
let mut file = File::create(file_pat).expect("Impossibile creare il file");
file.write_all("Ciao come stai?".as_bytes()).expect("Impossibile scrivere nel file");
}
fn read(file_pat: String) {
let mut file = File::open(file_pat).expect("Impossibile leggere il file");
let mut content = String::new();
file.read_to_string(&mut content).unwrap();
print!("{}", content);
}
fn appen(file_pat: String) {
let mut file = OpenOptions::new().append(true).open(file_pat).expect("Impossibile aprire il file");
file.write_all("Tutto bene tu?".as_bytes()).expect("Impossibile scrivere nel file");
}
Abbiamo importato diversi moduli, che possiamo riassumere qui:
Modulo | Meod | Descrizione |
---|---|---|
std::fs::File | open() | The open static method can be used to open a file in read-only mode. |
std::fs::File | create() | Static method opens a file in write-only mode. If the file already existed, the old content is destroyed. Otherwise, a new file is created. |
std::fs::remove_file | remove_file() | Removes a file from the filesystem. There is no guarantee that the file is immediately deleted. |
std::fs::OpenOptions | append() | Sets the option for the append mode of file. |
std::io::Writes | write_all() | Attempts to write an entire buffer into this write. |
std::io::Read | read_to_string() | Reads all bytes until EOF in this source, appending them to buf. |
Per ogni operazione usiamo expect, che ritorna un messaggio di errore in caso di fallimento.
Enjoy!
rust file remove_file openoptions expect
Commentami!