在 Rust 中,文件和 I/O 操作主要通过标准库中的 std::fs 和 std::io 模块来实现。下面是一些常见的文件和 I/O 操作示例:

文件读取:
use std::fs::File;
use std::io::{self, Read};

fn read_file_contents(file_path: &str) -> io::Result<String> {
    let mut file = File::open(file_path)?;

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

    Ok(contents)
}

fn main() {
    match read_file_contents("example.txt") {
        Ok(contents) => println!("File contents: {}", contents),
        Err(err) => eprintln!("Error reading file: {}", err),
    }
}

在这个例子中,File::open 打开一个文件,file.read_to_string 读取文件内容到一个字符串中。使用 ? 运算符进行错误处理。

文件写入:
use std::fs::File;
use std::io::{self, Write};

fn write_to_file(file_path: &str, content: &str) -> io::Result<()> {
    let mut file = File::create(file_path)?;

    file.write_all(content.as_bytes())?;

    Ok(())
}

fn main() {
    match write_to_file("output.txt", "Hello, Rust!") {
        Ok(_) => println!("File written successfully"),
        Err(err) => eprintln!("Error writing to file: {}", err),
    }
}

在这个例子中,File::create 创建一个新文件,file.write_all 将字符串内容写入文件。

从标准输入读取:
use std::io;

fn read_from_stdin() -> io::Result<String> {
    let mut input = String::new();
    io::stdin().read_line(&mut input)?;

    Ok(input)
}

fn main() {
    match read_from_stdin() {
        Ok(input) => println!("User input: {}", input),
        Err(err) => eprintln!("Error reading from stdin: {}", err),
    }
}

io::stdin().read_line 用于从标准输入读取用户输入。

向标准输出写入:
use std::io::{self, Write};

fn write_to_stdout(content: &str) -> io::Result<()> {
    io::stdout().write_all(content.as_bytes())?;

    Ok(())
}

fn main() {
    match write_to_stdout("Hello, Rust!") {
        Ok(_) => println!("Data written to stdout"),
        Err(err) => eprintln!("Error writing to stdout: {}", err),
    }
}

io::stdout().write_all 用于向标准输出写入内容。

这些示例演示了 Rust 中文件和 I/O 操作的基本用法。标准库的 std::io 模块提供了强大和灵活的工具,可用于处理各种 I/O 操作。


转载请注明出处:http://www.zyzy.cn/article/detail/13731/Rust