Rust File概述1 - 存取檔案
Struct std::fs::File[1]
File是一種開啟檔案後結構
可以修改或查看檔案詳細內容等等
此篇文章主要講述File常用到的method
而另一篇[2]則會講述如何讀寫File
這篇中有很多地方會跟OpenOption類似
也可以看看這篇[3]
open[4]
凡事都有一個起點
open大概就是File的起點
open只能開啟一個唯讀的檔案
也就是開起來後不能編輯,只能讀取
open輸入一個路徑,輸出Result
Result裡面是File 所以要unwrap()
如果檔案不存在會發生Err
其他會發生Err的可以跟OpenOption的open[5]比較
假設有個檔案example.txt內容為abcdefghijklmnopqrstuvwxyz
可以用open打開後
以read_to_string讀取
create[6]
open是打開現有文件
create則是創建文件
如果檔案不存在會創建文件
如果檔案存在則是會截斷,也就是把現有資料去除
create打開的文件只能寫不能讀
回傳Result<File>,因此也要unwrap()
透過create創建文件
以write_all把資料寫進文件
最後呈現這樣結果
options[7]
假設一個文件想要讀取又想要撰寫怎麼辦
可以使用options輔助
使用後會輸出OpenOptions
就可以照著這篇文章[3]使用
例如
同時開啟write和read
下面一樣可以寫入而不是只能讀取
set_len[8]
輸入一個數字
選擇要截斷的長度
例如我輸入10
會把10以後的數字的取消
只出現abcdefghij
但假設我用create開啟一個只能寫的檔案
使用create的同時他會自動把裡面內容清空
因此只能以option另外打開write權限
metadata[9]
metadata會輸出一個Metadata[10]
Metadata也是一個結構
可以判斷檔案是否為資料夾、是否為檔案、最後修改時間等等
延伸閱讀
Rust File概述2 - 撰寫讀取檔案 ~ LaGee-Blog (lageeblog.blogspot.com)Rust OpenOptions概述 - 文件打開的權限 ~ LaGee-Blog (lageeblog.blogspot.com)
參考資料
[1] https://doc.rust-lang.org/std/fs/struct.File.html#
[2] https://lageeblog.blogspot.com/2023/12/Rust-File2.html
[3] https://lageeblog.blogspot.com/2023/12/rust-openoptions.html
[4] https://doc.rust-lang.org/std/fs/struct.File.html#method.open
[5] https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#method.open
[6] https://doc.rust-lang.org/std/fs/struct.File.html#method.create
[7] https://doc.rust-lang.org/std/fs/struct.File.html#method.options
[8] https://doc.rust-lang.org/std/fs/struct.File.html#method.set_len
[9] https://doc.rust-lang.org/std/fs/struct.File.html#method.metadata
[10] https://doc.rust-lang.org/std/fs/struct.Metadata.html
0 comments:
張貼留言