Rust:
Pisanie pliku tekstowego
Jak to zrobić:
Standardowa biblioteka Rusta oferuje solidne narzędzia do manipulacji plikami, głównie zawarte w modułach std::fs
i std::io
. Oto podstawowy przykład, jak stworzyć i zapisać do pliku tekstowego:
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::create("hello.txt")?;
file.write_all(b"Witaj, świecie!")?;
Ok(())
}
Po uruchomieniu tego kodu znajdziesz plik o nazwie hello.txt
z zawartością “Witaj, świecie!”.
Dla bardziej złożonych scenariuszy, takich jak dodawanie do istniejącego pliku czy efektywne obsługiwanie większych danych, Rust oferuje dodatkowe funkcjonalności. Oto jak dodać tekst do istniejącego pliku:
use std::fs::OpenOptions;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = OpenOptions::new()
.write(true)
.append(true)
.open("hello.txt")?;
file.write_all(b" Dodaję więcej tekstu.")?;
Ok(())
}
Uruchomienie tego spowoduje dodanie " Dodaję więcej tekstu." na końcu hello.txt
.
W niektórych przypadkach wykorzystanie bibliotek stron trzecich może uproszczać operacje na plikach. Na przykład zestawienie serde
z serde_json
pozwala na serializację i deserializację struktur danych do i z formatu JSON, oferując wysokopoziomowe podejście do zapisu plików:
use serde::{Serialize, Deserialize};
use serde_json;
use std::fs::File;
#[derive(Serialize, Deserialize)]
struct User {
id: u32,
name: String,
}
fn main() -> std::io::Result<()> {
let user = User { id: 1, name: "Jane Doe".into() };
let file = File::create("user.json")?;
serde_json::to_writer(file, &user)?;
Ok(())
}
Po uruchomieniu powyższego kodu, user.json
będzie zawierał reprezentację JSON struktury User
. Należy zauważyć, że użycie serde
i serde_json
wymaga dodania tych skrzynek do pliku Cargo.toml
.
Pisanie plików tekstowych w Rust, zarówno za pomocą biblioteki standardowej, jak i z pomocą zewnętrznych skrzynek, jest prostym, a jednocześnie potężnym sposobem na zarządzanie trwałością danych w twoich aplikacjach.