成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Rust 中讀取和寫入文件

開發(fā)
跟隨這個(gè)演示,學(xué)習(xí)如何在 Rust 中使用文件系統(tǒng)模塊。

知道如何讀寫文件對各種用途都很有用。在 Rust 中,這項(xiàng)任務(wù)是通過標(biāo)準(zhǔn)庫中的文件系統(tǒng)模塊(??std::fs??)完成的。在這篇文章中,我將向你介紹如何使用這個(gè)模塊。

為了演示這項(xiàng)任務(wù),我準(zhǔn)備了一些示例代碼,也可以在 ??GitHub?? 上找到。

準(zhǔn)備工作

在使用 Rust 時(shí),失敗的函數(shù)會(huì)返回 ??Result?? 類型。尤其是文件系統(tǒng)模塊會(huì)返回專門的類型 ??std::io::Result<T, Error>??。有了這些知識,你可以從 ??main()?? 函數(shù)中返回相同的類型:

    fn  main() ->  std::io::Result<()> {
/* ...code comes here... */

Rust 文件寫入

在 Rust 中執(zhí)行文件的 I/O 操作是相對容易的。寫入文件可以簡化為一行:

    use  std::fs;
fs::write("favorite_websites.txt", b"opensource.com")?;
Ok(())

使用錯(cuò)誤傳播操作符 ??(?)??,錯(cuò)誤信息被傳遞到調(diào)用函數(shù)中,隨后可以處理錯(cuò)誤。由于 ??main()?? 是調(diào)用棧中唯一的其他函數(shù),如果寫操作失敗,錯(cuò)誤信息將被傳遞到控制臺(tái)輸出。

??fs::write?? 函數(shù)的語法是非常先進(jìn)的。第一個(gè)參數(shù)是文件路徑,它必須是 ??std::path::Path?? 類型。第二個(gè)參數(shù)是內(nèi)容,它實(shí)際上是一個(gè)字節(jié)切片(??[u8]??)。Rust 將傳遞的參數(shù)轉(zhuǎn)換為正確的類型。幸運(yùn)的是,這些類型基本上是下面的例子中所處理的唯一類型。

使用文件描述符類型 ??std::fs::File?? 可以實(shí)現(xiàn)對寫操作更簡潔的訪問:

    let mut file = fs::File::create("favorite_websites.txt")?;
file.write_all(b"opensource.com\n")?;
Ok(())

由于文件類型實(shí)現(xiàn)了 ??Write?? 特性,所以可以使用相關(guān)的方法來寫入文件。然而,??create?? 方法可以覆蓋一個(gè)已經(jīng)存在的文件。

為了獲得對文件描述符的更多控制,必須使用 ??std::fs::OpenOptions?? 類型。這提供了類似于其他語言中的打開模式:

    let mut file = fs::OpenOptions::new()
.append(true)
.open("favorite_websites.txt")?;

file.write_all(b"sourceforge.net\n")?;

Rust 文件讀取

適用于寫的東西也適用于讀。讀取也可以通過簡單的一行代碼來完成:

let websites = fs::read_to_string("favorite_websites.txt")?;

以上一行讀取文件的內(nèi)容并返回一個(gè)字符串。除了讀取字符串,還有 ??std::fs::read?? 函數(shù),如果文件包含二進(jìn)制數(shù)據(jù),該函數(shù)會(huì)將數(shù)據(jù)讀成一個(gè)字節(jié)向量。

下一個(gè)例子顯示了如何將文件的內(nèi)容讀入內(nèi)存,隨后逐行打印到控制臺(tái):

    let file = fs::File::open("favorite_websites.txt")?;
let lines = io::BufReader::new(file).lines();
for line in lines {
if let Ok(_line) = line {
println!(">>> {}", _line);
}
}

總結(jié)

如果你已經(jīng)熟悉了其他編程語言,你可能已經(jīng)注意到?jīng)]有 ??close-?? 函數(shù)(或類似的)來釋放文件句柄。在 Rust 中,當(dāng)相關(guān)變量超出作用域,文件句柄就會(huì)被釋放。為了定義關(guān)閉行為,可以在文件表示的周圍應(yīng)用作用域 ??({ })??。我建議你熟悉 ??Read?? 和 ??Write?? 特性,因?yàn)槟憧梢栽谠S多其他類型中找到這個(gè)特性的實(shí)現(xiàn)。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-08-02 15:02:37

Go Excelize 開發(fā)

2021-08-20 10:46:25

Shell腳本文件Linux

2021-04-21 08:03:34

腳本Shell讀取

2010-06-07 09:26:32

Hadoop集群

2018-12-29 09:45:28

Linux編程語言命令

2023-10-31 12:59:00

C++編程語言

2023-11-03 11:56:34

2024-12-03 00:40:55

2024-09-06 11:34:15

RustAI語言

2024-02-27 08:39:19

RustJSON字符串

2024-06-25 09:08:24

.NETCSV文件

2024-08-26 08:32:53

2023-11-02 08:01:50

NPOI開源

2021-11-01 12:45:29

UbuntuLinuxRust

2011-08-03 17:38:30

iPhone NSUserDefa 自定義

2016-08-29 21:36:55

nginxWeb緩存

2023-04-17 16:17:19

LinuxPDF

2022-09-27 10:07:01

要使用 source

2023-05-23 18:11:12

Rust數(shù)組元組

2020-12-10 10:46:23

PythonExcel圖片
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文字幕在线观看一区 | 一级免费毛片 | 欧美视频三区 | 四虎网站在线观看 | 欧美一级片在线观看 | 久久久久99 | 国产成人精品网站 | 国产欧美一区二区三区免费 | 中文字幕在线二区 | 国产清纯白嫩初高生在线播放视频 | 亚洲欧美国产精品一区二区 | av黄色片在线观看 | 午夜资源 | 日本久久综合 | 日韩电影中文字幕 | 久久免费精彩视频 | 看毛片网站 | 精品视频一区二区三区在线观看 | 亚洲一二三在线观看 | 久久久成人一区二区免费影院 | 精品国产一区二区三区在线观看 | 中文字幕精 | 国产精品久久久久久久久久免费看 | 亚洲视频免费观看 | 91麻豆精品国产91久久久久久 | 中文字幕视频在线观看 | 91久久综合亚洲鲁鲁五月天 | 欧美一级淫片007 | 日韩在线观看网站 | 国产欧美一区二区三区在线看蜜臀 | 美日韩视频 | 国产精品一区二区视频 | 91视频在线观看 | 久久久tv | 一区二区成人 | 久久黄网| 国产一区h| 国家aaa的一级看片 h片在线看 | 人人爽人人草 | 中文字幕亚洲精品在线观看 | 日日天天 |