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

陕西网站制作公司网页制作与设计代码

陕西网站制作公司,网页制作与设计代码,seo是什么意思电商,网站开发回访话术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.w-s-a.com/news/137403/

相关文章:

  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱
  • 手机购物网站 建站网站建设网站制作网站设计
  • 基于iview的网站开发模板小程序制作需要什么语言
  • 精美网站设计保定建行网站首页登录
  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用