Rust 文件与 IO学习笔记
在 Rust 中,文件和 IO 操作使用标准库中的 std::fs
和 std::io
模块来进行操作。本文将介绍 Rust 中关于文件与 IO 的常用操作方法,并提供实例代码。
读取文件内容
要读取文件内容,可以使用 fs::read_to_string
函数,该函数会返回一个 Result<String, io::Error>
类型的结果:
rustCopy Codeuse 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 Codeuse 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 Codeuse 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 Codeuse std::fs;
fn main() -> Result<(), std::io::Error> {
fs::create_dir("test")?;
Ok(())
}
上面的代码在当前目录下创建了一个名为 test
的目录。
文件元数据
要获取文件的元数据,可以使用 fs::metadata
函数,该函数会返回一个 Result<Metadata, io::Error>
类型的结果:
rustCopy Codeuse 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 Codeuse 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 的常用操作方法。通过这些操作,我们可以方便地读写文件,进行复制和创建目录等操作。希望本文能够对您的学习有所帮助。