Rust 文件读取
最后修改于 2025 年 2 月 19 日
在本文中,我们将介绍如何在 Rust 中读取文件。
Rust 有几种读取文件的方法,包括使用 std::fs::File
和 std::io::Read
trait。
read_to_string 函数
read_to_string
函数将整个文件读取到一个 String
中。
main.rs
use std::fs::File; use std::io::Read; fn main() { let filename = "words.txt"; let mut file = match File::open(filename) { Ok(file) => file, Err(err) => panic!("Could not open file: {}", err), }; let mut contents = String::new(); match file.read_to_string(&mut contents) { Ok(_) => println!("File contents: {}", contents), Err(err) => panic!("Could not read file: {}", err), } }
在此示例中,我们使用 File::open
函数打开一个名为 words.txt
的文件,并使用 read_to_string
函数将其内容读取到一个字符串中。
使用 BufReader
在 Rust 中读取文件的另一种方法是使用 std::io
模块中的 BufReader
类型。
main.rs
use std::fs::File; use std::io::{BufRead, BufReader}; fn main() { let filename = "words.txt"; let file = match File::open(filename) { Ok(file) => file, Err(err) => panic!("Could not open file: {}", err), }; let reader = BufReader::new(file); for line in reader.lines() { match line { Ok(line) => println!("{}", line), Err(err) => panic!("Could not read line: {}", err), } } }
在此示例中,我们打开一个文件并创建一个 BufReader
实例,以便逐行读取文件。
read_to_end 函数
read_to_end
函数将读取源中直到 EOF 的所有字节,并将它们放入一个缓冲区。
main.rs
use std::fs::File; use std::io::{self, Read}; fn main() -> io::Result<()> { let filename = "words.txt"; let mut f = File::open(filename)?; let mut buffer = Vec::new(); f.read_to_end(&mut buffer)?; let content = String::from_utf8_lossy(&buffer); println!("{}", content); Ok(()) }
在此示例中,我们定义一个缓冲区,并使用 read_to_end
将整个文件读取到缓冲区中。之后,我们将缓冲区转换为字符串并打印到控制台。
let mut buffer = Vec::new();
我们定义一个缓冲区。
f.read_to_end(&mut buffer)?;
我们将整个文件读取到一个缓冲区中。
let content = String::from_utf8_lossy(&buffer);
我们将缓冲区转换为字符串。
在本文中,我们介绍了 Rust 文件读取的基础知识。我们演示了如何使用 std::fs::File
和 std::io::Read
trait 打开和读取文件,以及如何处理过程中可能发生的错误。
作者
列出 所有 Rust 教程。