33.文件与 IO.rs
生活随笔
收集整理的這篇文章主要介紹了
33.文件与 IO.rs
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
use std::fs;
use std::fs::File;
use std::fs::OpenOptions;
use std::io::prelude::*;
use std::io::stdin;fn main() {//Rust 中主函數(shù)是個無參函數(shù),環(huán)境參數(shù)需要開發(fā)者通過 std::env 模塊取出let args = std::env::args();println!("{:?}", args);for arg in args {println!("{}", arg);}//std::io 模塊提供了標準輸入(可認為是命令行輸入)let mut str_buf = String::new();stdin().read_line(&mut str_buf).expect("Failed to read line.");println!("Your input line is {}", str_buf);//文本文件的讀取let text = fs::read_to_string("text.txt").unwrap();println!("{}", text);//讀取的文件是二進制文件let content = fs::read("text.txt").unwrap();println!("{:?}", content);//以上兩種方式是一次性讀取,十分適合 Web 應(yīng)用的開發(fā)。但是對于一些底層程序來說,傳統(tǒng)的按流讀取的方式依然是無法被取代的,//因為更多情況下文件的大小可能遠超內(nèi)存容量。//std::fs::File 的 open 方法是"只讀"打開文件,并且沒有配套的 close 方法,因為 Rust 編譯器可以在文件不再被使用時自動關(guān)閉文件。let mut buffer = [0u8; 5];let mut file = fs::File::open("text.txt").unwrap();file.read(&mut buffer).unwrap();println!("{:?}", buffer);file.read(&mut buffer).unwrap();println!("{:?}", buffer);//文件寫入//一次性寫入,它會直接刪除文件內(nèi)容(無論文件多么大)。如果文件不存在就會創(chuàng)建文件。fs::write("text.txt", "FROM RUST PROGRAM").unwrap();//用流的方式寫入文件內(nèi)容,可以使用 std::fs::File 的 create 方法:let mut file = File::create("text.txt").unwrap(); //打開的文件一定存放在可變的變量中才能使用 File 的方法!file.write(b"FROM RUST PROGRAM").unwrap();//File 類中不存在 append 靜態(tài)方法,但是我們可以使用 OpenOptions 來實現(xiàn)用特定方法打開文件:let mut file = OpenOptions::new().append(true).open("text.txt").unwrap();file.write(b" APPEND WORD").unwrap();//OpenOptions 是一個靈活的打開文件的方法,它可以設(shè)置打開權(quán)限,除append 權(quán)限以外還有 read 權(quán)限和 write 權(quán)限,如果我們想以讀寫權(quán)限打開一個文件可以這樣寫:let mut file = OpenOptions::new().read(true).write(true).open("text.txt").unwrap();file.write(b"COVER555555555").unwrap();
}
?
總結(jié)
以上是生活随笔為你收集整理的33.文件与 IO.rs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 32.生命周期注释.rs
- 下一篇: 34.rust宏.txt