Rust 文件 IO

举报
福州司马懿 发表于 2025/03/18 09:51:33 2025/03/18
【摘要】 在 Rust 中处理文件和输入输出(IO)操作是通过标准库中的几个模块来实现的,主要包括 std::fs 和 std::io。下面是一些常见的文件和 IO 操作示例: 读取文件要读取文件的内容,你可以使用 std::fs::read_to_string 函数,它会将整个文件读入一个 String 中。use std::fs;use std::io;fn main() -> io::Resul...

在 Rust 中处理文件和输入输出(IO)操作是通过标准库中的几个模块来实现的,主要包括 std::fsstd::io。下面是一些常见的文件和 IO 操作示例:

读取文件

要读取文件的内容,你可以使用 std::fs::read_to_string 函数,它会将整个文件读入一个 String 中。

use std::fs;
use std::io;

fn main() -> io::Result<()> {
    let content = fs::read_to_string("example.txt")?;
    println!("{}", content);
    Ok(())
}

写入文件

要将字符串写入文件,可以使用 std::fs::write 函数。

use std::fs;
use std::io;

fn main() -> io::Result<()> {
    let content = "Hello, world!";
    fs::write("example.txt", content)?;
    Ok(())
}

追加文件

如果你想在文件末尾追加内容,可以使用 std::fs::OpenOptions 来打开文件,并指定追加模式。

use std::fs::OpenOptions;
use std::io::{self, Write};

fn main() -> io::Result<()> {
    let mut file = OpenOptions::new()
        .append(true)
        .open("example.txt")?;
    
    file.write_all(b"Appending some text!\n")?;
    Ok(())
}

逐行读取文件

如果你希望逐行读取文件,可以使用 std::fs::Filestd::io::BufReader 结合 lines 方法。

use std::fs::File;
use std::io::{self, BufRead};

fn main() -> io::Result<()> {
    let file = File::open("example.txt")?;
    let reader = io::BufReader::new(file);

    for line in reader.lines() {
        println!("{}", line?);
    }

    Ok(())
}

错误处理

在 Rust 中,IO 操作可能会失败,因此返回类型通常是 Result<T, io::Error>。使用 ? 运算符可以方便地进行错误传播。

总结

Rust 提供了强大且安全的文件和 IO 操作接口,通过类型系统和所有权模型保证了操作的安全性和高效性。在进行文件操作时,务必处理可能出现的错误,确保程序的健壮性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。