📜  Rust-文件输入输出(1)

📅  最后修改于: 2023-12-03 15:19:53.325000             🧑  作者: Mango

Rust 文件输入输出

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());
}