📅  最后修改于: 2023-12-03 15:19:53.325000             🧑  作者: Mango
Rust 提供了多种处理文件输入输出的方式,通过读取和写入文件内容,可以实现数据的存储和共享。
使用 File::open
方法打开一个文件,该方法可以返回一个 Result
类型。其中 Ok
包含了一个已打开文件的 File
对象,而 Err
包含了一个描述文件打开错误的错误信息。
use std::fs::File;
fn main() -> std::io::Result<()> {
let file = File::open("foo.txt")?;
Ok(())
}
使用 File::create
方法在指定路径创建一个文件,该方法也可以返回一个 Result
类型。
use std::fs::File;
fn main() -> std::io::Result<()> {
let file = File::create("foo.txt")?;
Ok(())
}
使用 File::read_to_string
方法读取文件中的内容,该方法可以返回一个 Result
类型。其中 Ok
包含了已经将文件内容读取到内存中的字符串对象,而 Err
包含了一个描述文件读取错误的错误信息。
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::open("foo.txt")?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
Ok(())
}
使用 File::write_all
方法将内容写入到文件中,该方法可以返回一个 Result
类型。
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let mut file = File::create("foo.txt")?;
file.write_all(b"Hello, world!")?;
Ok(())
}
使用 File::metadata
方法获取文件的元数据,其中包括文件的大小,创建时间,修改时间等等。获取到的元数据类型是 std::fs::Metadata
。
use std::fs::File;
fn main() -> std::io::Result<()> {
let metadata = File::open("foo.txt")?.metadata()?;
println!("文件大小为: {} 字节", metadata.len());
Ok(())
}
使用 std::path::Path
类型创建文件路径对象,通过 Path::new()
方法创建。可以使用 path.join()
方法拼接路径,同时也可以通过 path.display()
方法将路径转换为字符串。
use std::path::Path;
fn main() {
let path = Path::new("foo.txt");
let path2 = path.join("bar.txt");
println!("{}", path2.display());
}