Rust 编程中的文件操作

rust programmingserver side programmingprogramming

文件操作通常包括 I/O 操作。Rust 为我们提供了不同的方法来处理所有这些操作。

打开

Rust 提供了一个 open 静态方法,我们可以使用它以只读模式打开文件。

示例

考虑下面显示的代码:

use std::fs::File;
use std::io::prelude::*;
use std::path::Path;
fn main() {
   // 创建所需文件的路径
   let path = Path::new("out.txt");
   let display = path.display();
   let mut file = match File::open(&path) {
      Err(why) => panic!("无法打开 {}: {}", display, why),
      Ok(file) => file,
   };
   let mut s = String::new();
   match file.read_to_string(&mut s) {
      Err(why) => panic!("无法读取 {}: {}", display, why),
      Ok(_) => print!("{} 它包含:
{}", display, s),    }    // `file` 超出范围,并且 "out.txt" 文件得到    closed }

输出

上述代码的输出是

out.txt contains:
Hello World!

创建

create 方法以只写模式打开一个文件,如果该文件已经存在,则旧内容将被销毁。

示例

static RANDOM_TEXT: &str = "Lorem ipsum dolor sit AMEN, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
use std::fs::File;
use std::io::prelude::*;
use std::path::Path;
fn main() {
   let path = Path::new("random_text.txt");
   let display = path.display();
   // 以只写模式打开文件,返回 `io::Result`
   let mut file = match File::create(&path) {
      Err(why) => panic!("couldn't create {}: {}", display, why),
      Ok(file) => file,
   };
   // 将 `RANDOM_TEXT` 字符串写入 `file`,返回
   `io::Result<()>`
   match file.write_all(RANDOM_TEXT.as_bytes()) {
      Err(why) => panic!("couldn't write to {}: {}", display, why),
      Ok(_) => println!("successfully write to {}", display),
   }
}

输出

当我们运行以下命令时:

cat random_text.txt

我们得到的输出是:

Lorem ipsum dolor sit AMEN, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

相关文章