Rust:
编写文本文件

如何做:

Rust 的标准库提供了强大的文件操作工具,主要封装在 std::fsstd::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(())
}

运行这段代码将在 hello.txt 的末尾添加 " Adding more text."。

在某些案例中,利用第三方库可以简化文件操作。例如,serde 库结合 serde_json,允许将数据结构序列化和反序列化成 JSON 格式,为写文件提供了一个高级方法:

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 将包含 User 结构的 JSON 表示。注意,使用 serdeserde_json 需要将这些库添加到你的 Cargo.toml 中。

在 Rust 中写文本文件,无论是通过标准库还是借助外部库,都是一种简单而强大的方式,用于在应用程序中管理数据持久性。