Rust程式設計中的檔案操作


檔案操作通常包括I/O操作。Rust為我們提供了不同的方法來處理所有這些操作。

開啟

Rust提供了一個open靜態方法,我們可以用它以只讀模式開啟一個檔案。

示例

考慮下面顯示的程式碼

use std::fs::File;
use std::io::prelude::*;
use std::path::Path;
fn main() {
   // Create a path to the desired file
   let path = Path::new("out.txt");
   let display = path.display();
   let mut file = match File::open(&path) {
      Err(why) => panic!("unable to open {}: {}", display, why),
      Ok(file) => file,
   };
   let mut s = String::new();
   match file.read_to_string(&mut s) {
      Err(why) => panic!("unable to read {}: {}", display, why),
      Ok(_) => print!("{} it contains:
{}", display, s),    }    // `file` goes out of scope, and the "out.txt" file gets    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();
   // Open a file in write-only mode, returns `io::Result`
   let mut file = match File::create(&path) {
      Err(why) => panic!("couldn't create {}: {}", display, why),
      Ok(file) => file,
   };
   // Write the `RANDOM_TEXT` string to `file`, returns 
   `io::Result<()>`
   match file.write_all(RANDOM_TEXT.as_bytes()) {
      Err(why) => panic!("couldn't write to {}: {}", display, why),
      Ok(_) => println!("successfully wrote 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.

更新於:2021年4月3日

254次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.