Rust:
Skrive en tekstfil
Hvordan:
Rusts standardbibliotek tilbyr robuste verktøy for filmanipulering, hovedsakelig innkapslet innenfor std::fs
og std::io
-modulene. Her er et enkelt eksempel for å opprette og skrive til en tekstfil:
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::create("hello.txt")?;
file.write_all(b"Hello, world!")?;
Ok(())
}
Etter å ha kjørt denne koden, vil du finne en fil med navnet “hello.txt” med innholdet “Hello, world!”.
For mer komplekse scenarioer, som å legge til tekst i en eksisterende fil eller håndtere større data effektivt, tilbyr Rust ekstra funksjonalitet. Her er hvordan du legger til tekst i en eksisterende fil:
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" Legger til mer tekst.")?;
Ok(())
}
Å kjøre dette vil legge til " Legger til mer tekst." på slutten av hello.txt
.
I noen tilfeller kan bruk av tredjepartsbiblioteker forenkle filoperasjoner. serde
-kassen, kombinert med serde_json
, for eksempel, tillater serialisering og deserialisering av datastrukturer til og fra JSON-format, og tilbyr en høy-nivå tilnærming til å skrive filer:
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(())
}
Etter å ha kjørt koden ovenfor, vil user.json
inneholde en JSON-representasjon av User
-strukturen. Merk at bruk av serde
og serde_json
krever at du legger til disse kassene i din Cargo.toml
.
Å skrive tekstfiler i Rust, enten gjennom standardbiblioteket eller med hjelp av eksterne kasser, er en enkel, men kraftfull måte å håndtere dataoppbevaring i applikasjonene dine på.