📅  最后修改于: 2023-12-03 15:19:53.106000             🧑  作者: Mango
Rust 中的标准库提供了一系列输入/输出(IO)功能,用于读取和写入数据。这些功能包含在 std::io 模块中。该模块中包含了代表文件、标准输入和标准输出的类型,以及其他一些 IO 相关的类型和 trait。
Rust 标准库提供了处理标准输入和标准输出的功能。标准输入通常对应着用户在终端中输入的数据,而标准输出则是在终端中打印输出内容。
有多种方法可以从标准输入中读取数据。下面我们来看一下如何使用 std::io::stdin() 函数获取标准输入的句柄。
use std::io;
fn main() {
let mut input = String::new();
match io::stdin().read_line(&mut input) {
Ok(_) => {
println!("输入的字符串是: {}", input);
}
Err(e) => {
println!("读取标准输入失败: {}", e);
}
}
}
在上面的代码中,我们首先创建了一个空的字符串变量 input,然后使用 io::stdin() 函数获取标准输入的句柄,并调用 read_line() 方法读取用户输入的数据。
通过使用 std::io::stdout() 函数获取标准输出的句柄,我们可以将数据输出到标准输出。下面是一个简单的例子。
use std::io::{self, Write};
fn main() {
let message = "你好,世界!\n";
let mut stdout = io::stdout();
stdout.write_all(message.as_bytes()).unwrap();
}
在上面的代码中,我们创建了一个名为 message 的字符串,然后使用 std::io::stdout() 函数获取标准输出的句柄,并最后将 message 内容输出到标准输出中。
在 Rust 中,我们可以使用格式化宏来格式化输出内容。最常用的格式化宏是 println!。下面是一个示例。
fn main() {
let name = "Rustacean";
let age = 4;
println!("Hello, {}! You are {} years old.", name, age);
}
在上面的代码中,我们使用 {} 占位符来表示将要输出的内容,这些占位符后面的参数将填充这些位置。
除了标准输入和标准输出之外,Rust 标准库还提供了大量的文件读写相关方法。
读取文件内容的方法之一是使用 std::fs::File 类型和 std::io::Read trait。下面是一个简单的例子。
use std::fs::File;
use std::io::{self, Read};
fn main() {
let mut file = File::open("hello.txt").unwrap();
let mut contents = String::new();
file.read_to_string(&mut contents).unwrap();
println!("文件内容是:\n{}", contents);
}
在上面的代码中,我们使用 std::fs::File 类型打开文件 hello.txt 并得到该文件的句柄。然后使用 std::io::Read trait 的 read_to_string() 方法,将文件中的内容读取到一个字符串变量中。
我们可以使用 std::fs::File 类型和 std::io::Write trait 来写入数据到文件中。下面是一个简单的例子。
use std::fs::File;
use std::io::{self, Write};
fn main() {
let mut file = File::create("hello.txt").unwrap();
let message = "Hello, 文件!\n";
file.write_all(message.as_bytes()).unwrap();
}
在上面的代码中,我们使用 std::fs::File 类型创建一个名为 hello.txt 的新文件,并使用 std::io::Write trait 的 write_all() 方法将 message 字符串写入到文件中。
在 Rust 中,我们可以使用 std::io 模块来处理标准输入和标准输出,以及读取和写入文件。这些功能使得 Rust 成为一个好的选择来开发需要处理输入输出数据的应用程序。