Rust:
การเขียนไฟล์ข้อความ
วิธีการ:
ไลบรารีมาตรฐานของ Rust ทำหน้าที่หลักๆ ในงานจัดการไฟล์, หลักๆ อยู่ภายในโมดูล std::fs
และ std::io
ต่อไปนี้เป็นตัวอย่างพื้นฐานในการสร้างและเขียนไปยังไฟล์ข้อความ:
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(())
}
หลังจากรันโค้ดนี้, คุณจะพบไฟล์ชื่อ hello.txt
โดยมีเนื้อหา “Hello, world!”.
สำหรับสถานการณ์ที่ซับซ้อนมากขึ้น เช่น เพิ่มข้อมูลเข้าไปในไฟล์หรือจัดการข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ Rust มีฟังก์ชันเพิ่มเติม ต่อไปนี้คือวิธีที่จะเพิ่มข้อความเข้าไปในไฟล์ที่มีอยู่:
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" Adding more text.")?;
Ok(())
}
การรันนี้จะเพิ่ม " Adding more text." ไปที่ปลาย hello.txt
.
ในบางกรณี การใช้ไลบรารีของบุคคลที่สามสามารถทำให้การดำเนินงานไฟล์ง่ายขึ้น ไลบรารี serde
ร่วมกับ serde_json
, เป็นต้น, ช่วยให้สามารถแปลงโครงสร้างข้อมูลไปและกลับจาก JSON format, นำเสนอวิธีการระดับสูงในการเขียนไฟล์:
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(())
}
หลังจากรันโค้ดด้านบน, user.json
จะมีรูปแบบ JSON ของโครงสร้าง User
. โปรดทราบว่าการใช้ serde
และ serde_json
ต้องการการเพิ่มเหล่านี้ลงใน Cargo.toml
ของคุณ
การเขียนไฟล์ข้อความใน Rust, ไม่ว่าจะผ่านไลบรารีมาตรฐานหรือด้วยความช่วยเหลือจากไลบรารีภายนอก, เป็นวิธีที่ตรงไปตรงมาแต่ทรงพลังในการจัดการความทนทานของข้อมูลในการประยุกต์ใช้งานของคุณ