Rust 文件与 IO学习笔记

在 Rust 中,文件和 IO 操作使用标准库中的 std::fsstd::io 模块来进行操作。本文将介绍 Rust 中关于文件与 IO 的常用操作方法,并提供实例代码。

读取文件内容

要读取文件内容,可以使用 fs::read_to_string 函数,该函数会返回一个 Result<String, io::Error> 类型的结果:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { let file_contents = fs::read_to_string("file.txt")?; println!("{}", file_contents); Ok(()) }

上面的代码通过 read_to_string 函数读取了当前目录下名为 file.txt 的文件,并将文件的内容打印到了控制台上。

写入文件内容

要写入文件内容,可以使用 fs::write 函数,该函数会返回一个 Result<(), io::Error> 类型的结果:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { let contents = "hello world"; fs::write("output.txt", contents)?; Ok(()) }

上面的代码将字符串 hello world 写入到了当前目录下名为 output.txt 的文件中。

复制文件

要复制文件,可以使用 fs::copy 函数,该函数会返回一个 Result<u64, io::Error> 类型的结果,其中 u64 表示复制的字节数量:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { let copied_bytes = fs::copy("input.txt", "output.txt")?; println!("{} bytes copied", copied_bytes); Ok(()) }

上面的代码将当前目录下名为 input.txt 的文件复制到了当前目录下名为 output.txt 的文件中,并打印复制的字节数量。

创建目录

要创建目录,可以使用 fs::create_dir 函数,该函数会返回一个 Result<(), io::Error> 类型的结果:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { fs::create_dir("test")?; Ok(()) }

上面的代码在当前目录下创建了一个名为 test 的目录。

文件元数据

要获取文件的元数据,可以使用 fs::metadata 函数,该函数会返回一个 Result<Metadata, io::Error> 类型的结果:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { let metadata = fs::metadata("file.txt")?; println!("{:?}", metadata); Ok(()) }

上面的代码获取了当前目录下名为 file.txt 的文件的元数据,并将其打印到了控制台上。

文件遍历

要遍历目录中的文件,可以使用 fs::read_dir 函数,该函数会返回一个 Result<ReadDir, io::Error> 类型的结果。ReadDir 可以通过迭代器进行遍历:

rustCopy Code
use std::fs; fn main() -> Result<(), std::io::Error> { let dir = fs::read_dir(".")?; for entry in dir { let entry = entry?; let path = entry.path(); println!("{:?}", path); } Ok(()) }

上面的代码遍历了当前目录下的文件,并将文件路径打印到了控制台上。

结语

以上是 Rust 中文件与 IO 的常用操作方法。通过这些操作,我们可以方便地读写文件,进行复制和创建目录等操作。希望本文能够对您的学习有所帮助。