前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >26.Rust-文件操作

26.Rust-文件操作

原创
作者头像
面向加薪学习
修改2022-09-04 11:40:45
5820
修改2022-09-04 11:40:45
举报
文章被收录于专栏:面向加薪学习面向加薪学习

Rust 语言使用结构体 File 来描述/展现一个文件。

所有对结构体 File 的操作方法都会返回一个 Result 枚举。

以下是一些常用的文件方法

模块

方法

说明

std::fs::File

open()

静态方法,以 只读 模式打开文件

std::fs::File

create()

静态方法,以 可写 模式打开文件。 如果文件存在则清空旧内容 如果文件不存在则新建

std::fs::remove_file

remove_file()

从文件系统中删除某个文件

std::fs::OpenOptions

append()

设置文件模式为 追加

std::io::Writes

write_all()

将 buf 中的所有内容写入输出流

std::io::Read

read_to_string()

读取所有内容转换为字符串后追加到 buf 中

打开文件

模块提供了静态方法 open() 用于打开一个文件并返回文件句柄。

代码语言:txt
复制
let file = std::fs::File::open("data.txt").unwrap();
println!("文件打开成功\n:{:?}",file);

文件打开成功:File { fd: 3, path: "/Users/monster/Github/rust_edu/file26/data.txt", read: true, write: false }

创建文件

代码语言:txt
复制
let file = std::fs::File::create("data2.txt").expect("创建失败");
println!("文件创建成功:{:?}",file);

文件创建成功:File { fd: 4, path: "/Users/monster/Github/rust_edu/file26/data2.txt", read: false, write: true }

删除文件

使用 remove_file() 方法删除。

代码语言:txt
复制
fs::remove_file("data.txt").expect("无法删除文件");
println!("文件已删除");

追加内容

代码语言:txt
复制
let mut file = OpenOptions::new().append(true).open("data2.txt").expect("失败");
file.write("\nwww.go-edu.cn".as_bytes()).expect("写入失败");
println!("\n数据追加成功");

函数 append() 用于将文件的打开模式设置为 追加

写入所有内容

代码语言:txt
复制
file.write_all("Rust".as_bytes()).expect("创建失败");
file.write_all("\nRust".as_bytes()).expect("创建失败");
println!("数据已写入完毕");

输出 数据已写入完毕

注意: write_all() 方法并不会在写入结束后自动写入换行符 \n

读取内容

代码语言:txt
复制
let mut file = std::fs::File::open("data2.txt").unwrap();
let mut contents = String::new();
file.read_to_string(&mut contents).unwrap();
print!("{}", contents);
//输出
www.go-edu.cnRust
Rust

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打开文件
  • 创建文件
  • 删除文件
  • 追加内容
  • 写入所有内容
  • 读取内容
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档