ZetCode

Rust 写入文件

最后修改于 2025 年 2 月 19 日

本文介绍如何在 Rust 中写入文件。

文件

文件 是用于存储数据的命名位置。Rust 提供了 std::fs 模块来处理文件。

打开文件

要写入文件,我们必须先打开它。File::create 方法会创建一个新文件或截断一个现有文件。

main.rs
use std::fs::File;
use std::io::Error;

fn main() -> Result<(), Error> {
    let file = File::create("test.txt")?;
    Ok(())
}

程序创建一个名为 test.txt 的新文件。

let file = File::create("test.txt")?;

我们创建一个文件并将其存储在一个变量中。

? 运算符用于处理错误。如果方法返回错误,程序将终止。

写入文件

要将数据写入文件,我们使用 write! 宏。

main.rs
use std::fs::File;
use std::io::{Error, Write};

fn main() -> Result<(), Error> {
    let mut file = File::create("test.txt")?;
    writeln!(file, "This is a test file.")?;
    Ok(())
}

程序将一个字符串写入文件。

writeln!(file, "This is a test file.")?;

我们使用 writeln! 宏将一行写入文件。

读写文件

文件可以同时打开用于读取和写入。File::open 方法打开一个文件用于读取。

main.rs
use std::fs::File;
use std::io::{Error, Read, Write};
use std::io::prelude::*;

fn main() -> Result<(), Error> {
    let mut file = File::open("test.txt")?;

    let mut contents = String::new();
    file.read_to_string(&mut contents)?;

    println!("{contents}");

    file.write_all(b"This is a test file.")?;

    Ok(())
}

程序读取文件内容并向其中写入新数据。

let mut file = File::open("test.txt")?;

我们打开文件进行读取。

let mut contents = String::new();
file.read_to_string(&mut contents)?;

我们将文件内容读取到一个字符串中。

file.write_all(b"This is a test file.")?;

我们将新数据写入文件。

关闭文件

完成后关闭文件非常重要。File::drop 方法用于关闭文件。

main.rs
use std::fs::File;
use std::io::{Error, Read, Write};
use std::io::prelude::*;

fn main() -> Result<(), Error> {
    let mut file = File::open("test.txt")?;

    let mut contents = String::new();
    file.read_to_string(&mut contents)?;

    println!("{contents}");

    file.write_all(b"This is a test file.")?;

    file.drop();

    Ok(())
}

程序在写入文件后关闭它。

file.drop();

drop 方法在文件变量上调用。

在本文中,我们介绍了如何在 Rust 中写入文件。

作者

我叫 Jan Bodnar,是一名充满激情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有超过十年的经验。

列出 所有 Rust 教程