Rust:
Tekstitiedoston kirjoittaminen
Kuinka:
Rustin vakio kirjasto tarjoaa vankkoja työkaluja tiedostojen käsittelyyn, jotka on ensisijaisesti kapseloitu std::fs
ja std::io
moduuleihin. Tässä on perusesimerkki tekstitiedoston luomisesta ja siihen kirjoittamisesta:
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::create("hello.txt")?;
file.write_all(b"Terve, maailma!")?;
Ok(())
}
Tämän koodin suorittamisen jälkeen löydät tiedoston nimeltä hello.txt
, jonka sisältönä on “Terve, maailma!”.
Monimutkaisemmissa tilanteissa, kuten tiedostoon lisäämisen tai suurten datamäärien tehokkaan käsittelyn tapauksessa, Rust tarjoaa lisätoiminnallisuutta. Tässä on miten tekstiä voi lisätä olemassa olevaan tiedostoon:
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" Lisätään lisää tekstiä.")?;
Ok(())
}
Tämän suorittaminen lisää " Lisätään lisää tekstiä." loppuun hello.txt
tiedostoon.
Joissain tapauksissa kolmannen osapuolen kirjastot voivat yksinkertaistaa tiedosto-operaatioita. serde
crate yhdessä serde_json
kanssa, esimerkiksi, mahdollistaa datarakenteiden serialisoinnin ja deserialisoinnin JSON-muotoon, tarjoten korkean tason lähestymistavan tiedostojen kirjoittamiseen:
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(())
}
Yllä olevan koodin suorittamisen jälkeen user.json
sisältää User
rakenteen JSON representaation. Huomaa, että serde
ja serde_json
käyttäminen vaatii näiden crateien lisäämistä Cargo.toml
-tiedostoosi.
Tekstitiedostojen kirjoittaminen Rustissa, joko vakio kirjaston kautta tai ulkopuolisten cratejen avulla, on suoraviivaista mutta voimakas tapa hallita datan pysyvyyttä sovelluksissasi.