当前位置: 首页 > news >正文

网站怎么做值班表女生学软件工程很难吗

网站怎么做值班表,女生学软件工程很难吗,网站备案重要吗,中企动力企业邮箱下载std::fs模块提供了结构体File#xff0c;它表示一个文件。 一、打开文件 结构体File提供了open()函数 open()以只读模式打开文件#xff0c;如果文件不存在#xff0c;则会抛出一个错误。如果文件不可读#xff0c;那么也会抛出一个错误。 范例 fn main() {let file s…std::fs模块提供了结构体File它表示一个文件。 一、打开文件 结构体File提供了open()函数 open()以只读模式打开文件如果文件不存在则会抛出一个错误。如果文件不可读那么也会抛出一个错误。 范例 fn main() {let file std::fs::File::open(data.txt).unwrap();println!(文件打开成功{:?}, file); }std::fs::File的open函数没有配套的close函数因为Rust编译器可以在文件不再被使用时自动关闭文件。 二、创建文件 结构体File提供了create() 函数 以只写模式打开文件。如果文件存在则清空旧内容如果文件不存在则新建 范例 fn main() {let file std::fs::File::create(data.txt).expect(create failed);println!(文件创建成功:{:?},file); }三、读取文件 一结构体File实现了Read特性 Read特性提供了如下方法 fn read(mut self, buf: mut [u8]) - Resultusize读取一些字节到指定的缓冲区中返回读取的字节数。读取的字节数等于缓冲区的长度 fn read_to_end(mut self, buf: mut Vecu8) - Resultusize读取所有字节直到此源中的 EOF 为止然后将它们追加到 buf fn read_to_string(mut self, buf: mut String) - Resultusize读取所有字节直到 EOF 为止然后将它们追加到 buf。如果读取成功则返回读取的字节数如果读取失败则抛出错误。 实例 use std::io::prelude::*; use std::fs; fn main() {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); } 运行结果 [84, 104, 105, 115, 32] [105, 115, 32, 97, 32]范例 data.txt内容如下 简单教程 简单编程代码如下 use std::io::Read; fn main(){let mut file std::fs::File::open(data.txt).unwrap();let mut contents String::new();file.read_to_string(mut contents).unwrap();println!({}, contents); } 运行结果如下 简单教程 简单编程二快捷函数 std::fs::read_to_string pub fn read_to_stringP: AsRefPath(path: P) - ResultString将文件的全部内容读取为字符串。这是使用File::open和File::read_to_string 的便捷函数 实例 use std::fs; fn main() {let text fs::read_to_string(text.txt).unwrap();println!({}, text); } 运行结果 This is a text file.std::fs::read pub fn readP: AsRefPath(path: P) - ResultVecu8将文件的全部内容读取为字节 vector。这是使用 File::open 和 read_to_end 的便捷函数 实例 use std::fs; fn main() {let content fs::read(D:\\text.txt).unwrap();println!({:?}, content); } 运行结果 [84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 116, 101, 120, 116, 32, 102, 105, 108, 101, 46]以上两种方式是一次性读取十分适合Web应用的开发。但是更多情况下文件的大小可能远超内存容量。所以不常使用。 四、写入文件 一结构体File实现了Write特性 Write特性提供了如下方法 fn write(mut self, buf: [u8]) - Resultusize写入一个缓冲区返回写入的字节数。这个函数会尝试写入 buf 的全部内容但是整个写入可能不会成功或者写入也会产生错误。 fn write_all(mut self, buf: [u8]) - Result()将整个缓冲区写入File。此方法将连续调用 write直到没有更多数据要写入或返回非 ErrorKind::Interrupted 类型的错误为止。 在成功写入整个缓冲区或发生此类错误之前此方法将不会返回 实例 use std::io::prelude::*; use std::fs::File; fn main() {let mut file File::create(text.txt).unwrap();file.write(bFROM RUST PROGRAM).unwrap(); }范例 use std::io::Write; fn main() {let mut file std::fs::File::create(data.txt).expect(create failed);file.write_all(简单教程.as_bytes()).expect(write failed);file.write_all(\n简单编程.as_bytes()).expect(write failed);println!(data written to file ); } 编译运行则data.txt的内容如下 简单教程 简单编程二快捷函数 std::fs::write pub fn writeP: AsRefPath, C: AsRef[u8](path: P, contents: C) - Result()把一个切片写入文件如果文件不存在就会创建文件如果文件存在就替换其内容。 这是使用 File::create 和 write_all 的便捷函数 实例 use std::fs; fn main() {fs::write(text.txt, FROM RUST PROGRAM).unwrap(); }执行程序之后text.txt文件的内容将会被重写为FROM RUST PROGRAM。 五、追加内容到文件末尾 Write特性并没有提供函数用于追加内容 但std::fs::OpenOptions结构体可以配置文件打开方式。 OpenOptions提供了append()用于设置追加模式 pub fn append(mut self, append: bool) - mut Self当文件的模式设置为 追加 之后写入文件的内容就不会代替原先的旧内容而是放在旧内容的后面。 范例 data.txt内容如下 简单教程 简单编程代码如下 use std::fs::OpenOptions; use std::io::Write; fn main() {let mut file OpenOptions::new().append(true).open(data.txt).expect(cannot open file);file.write_all(www.twle.cn.as_bytes()).expect(write failed);file.write_all(\n简单教程.as_bytes()).expect(write failed);file.write_all(\n简单编程.as_bytes()).expect(write failed);println!(数据追加成功); } 运行结果如下 数据追加成功打开 data.txt 文件可以看到内容如下 简单教程 简单编程www.twle.cn 简单教程 简单编程OpenOptions除append权限以外还有read权限和write权限如果我们想以读写权限打开一个文件可以这样写 实例 text.txt内容如下 this is text代码如下 use std::io::prelude::*; use std::fs::OpenOptions; fn main() - std::io::Result() {let mut file OpenOptions::new().read(true).write(true).open(text.txt)?;file.write(bCOVER)?;Ok(()) } 运行之后text.txt文件内容将变成 COVERis text六、删除文件 std::fs 提供了函数 remove_file() 用于删除文件。 pub fn remove_fileP: AsRef(path: P) - Result()注意删除可能会失败即使返回结果为OK也有可能不会立即就删除。 范例 use std::fs; fn main() {fs::remove_file(data.txt).expect(could not remove file);println!(file is removed); } 编译运行结果如下 file is removed打开当前目录我们可以发现文件已经被删除了。 七、复制文件 Rust标准库没有提供任何函数用于复制一个文件为另一个新文件。 但我们可以使用上面提到的函数和方法来实现文件的复制功能。 下面的代码我们模仿简单版本的 copy 命令 copy old_file_name new_file_name代码如下 use std::io::Read; use std::io::Write; fn main() {let mut command_line: std::env::Args std::env::args();command_line.next().unwrap(); // 跳过程序名// 原文件let source command_line.next().unwrap();// 新文件let destination command_line.next().unwrap();let mut file_in std::fs::File::open(source).unwrap();let mut file_out std::fs::File::create(destination).unwrap();let mut buffer [0u8; 4096];loop {let nbytes file_in.read(mut buffer).unwrap();file_out.write(buffer[..nbytes]).unwrap();if nbytes buffer.len() { break; }} }$ ./main data.txt data_new.txtdata.txt 为我们想要复制的原文件路径 data_new.txt 为我们想要的新文件路径
http://www.yutouwan.com/news/474070/

相关文章:

  • 网站建设氺首选金手指14什么网站教你做美食
  • 交易网站建设需要学什么软件网站建设拟采用的技术路线
  • 网新企业网站管理系统WordPress仿制
  • 网页设计与网站建设分析解析域名就可以做网站
  • 大连网站建设运营百度一下官网搜索引擎
  • 网站的ftp账号和密码是什么一家企业如何建设自己的网站 下载
  • 凤台做网站大连网页设计公司排名
  • 一站式服务平台官网绍兴网站快速排名优化
  • 我想创业做网站服务五象新区开发建设指挥部网站
  • 做网站公司怎么找网站建设前就应该进行网站推广工作
  • 关闭站长工具seo综合查询百度快照搜索引擎
  • 长春站建筑网站服务器和空间大小
  • 服装设计网站有哪些网站代理在线
  • 怎么做网站能快速赚钱温州网站建设wmwl
  • 做网站需要团队还是一个人专业做财经直播网站
  • 珠海网站建易搜互联免费音乐网站建设
  • 保定做网站的公司推广方式图片
  • 东营网站建设优选案例注册个人订阅号
  • 网站建设办公软件销售技巧后期网站建设及维护推广
  • 怎样用别人的网站做修改病句京东的网络营销方式
  • 一诺互联 网站建设深圳工程建设公司
  • 无为县住房和城乡建设局网站seo网络推广企业
  • 建筑公司网站源码免费网页注册
  • 网站模板分什么类型杭州外贸公司有哪些
  • 代刷网站推广链接快手WordPress文章设置时间免费
  • 建设企业网站企业网上银行对公网上拿货做哪个网站好
  • 做网站的数据库的步骤网站建设推广seo
  • 网站做好第二年要多少钱免费的网站建设开发
  • 不懂代码怎么做网站宁夏制作网站公司
  • php网站搭建环境搭建市场营销方案怎么写