Rust ?运算符 Rust读写txt文件

这篇具有很好参考价值的文章主要介绍了Rust ?运算符 Rust读写txt文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Rust ?运算符
?运算符:传播错误的一种快捷方式。
  • 如果Result是Ok:Ok中的值就是表达式的结果,然后继续执行程序。

  • 如果Result是Err:Err就是整个函数的返回值,就像使用了return

?运算符只能用于返回Result的函数。
?运算符与main函数
  • main函数返回类型是:()

  • main函数的返回类型也可以是:Result<T,E>

  • Box是trait对象,简单理解:“任何可能的错误类型”

二、Rust读写txt文件

Rust可以对txt文件读、写、创建、添加、打开操作。

use std::fs::{self, OpenOptions};

let file = OpenOptions::new()
        .read(true)
        .write(true)
        .create(true)
        .append(true)
        .open(filepath)?;
三、Rust实例测试

main.rs

use std::fs::{self, OpenOptions};
use std::io::{BufRead, BufReader, BufWriter, Write};


fn main() -> Result<(), Box<dyn std::error::Error>> {
    let filepath = "test1.txt";
    let filepath2 = "test2.txt";

    let str = read_file_string(filepath);
    println!("{:#?}", str);

    let vec = read_file_vec(filepath);
    println!("{:#?}", vec);

    read_file_buffer(filepath)?;
    write_file_buffer(filepath2)?;

    Ok(())
}

//将整个文件作为字符串读取
fn read_file_string(filepath: &str) -> Result<String, Box<dyn std::error::Error>> {
    let data = fs::read_to_string(filepath)?;
    Ok(data)
}

//将整个文件作为Vector读取
fn read_file_vec(filepath: &str) -> Result<Vec<u8>, Box<dyn std::error::Error>> {
    let data = fs::read(filepath)?;
    Ok(data)
}

//BufReader按行读取
fn read_file_buffer(filepath: &str) -> Result<(), Box<dyn std::error::Error>> {
    let file = OpenOptions::new().read(true).open(filepath)?;
    let reader = BufReader::new(file);

    //按行读取
    for line in reader.lines() {
        let str: String = line.unwrap();
        println!("{}", str);
    }

    Ok(())
}

//BufWriter带缓冲写入
fn write_file_buffer(filepath: &str) -> Result<(), Box<dyn std::error::Error>> {
    let file = OpenOptions::new()
        .create(true)
        .append(true)
        .open(filepath)?;

    let mut reader = BufWriter::new(file);

    // 带缓冲写入
    reader.write(b"hello\n")?;
    reader.write(b"word\n")?;
    //确保缓冲中的内容全部写入文件
    reader.flush()?;

    Ok(())
}

其中test1.txt文件内容如下:

白日依山尽,
黄河入海流。

运行效果如下:

Rust ?运算符 Rust读写txt文件,Rust开发教程,rust,开发语言,Rust,rust读写txt文件,?运算符

Rust ?运算符 Rust读写txt文件,Rust开发教程,rust,开发语言,Rust,rust读写txt文件,?运算符

生成的test2.txt文件,内容如下:文章来源地址https://www.toymoban.com/news/detail-835338.html

hello
word

到了这里,关于Rust ?运算符 Rust读写txt文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ChatGPT辅助学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

    本章节将详细介绍Rust的基础语法,包括变量,数据类型,运算符,以及控制流。每个部分都将提供详细的解释和代码示例,以便于理解和学习。 在编程语言中,变量是一种基本的概念,它们是用来存储数据的。在Rust中,变量的特性和其他语言有所不同。 在Rust中,变量的定

    2024年02月14日
    浏览(85)
  • Python教程(13)——Python运算符详解|算术运算符|比较运算符|逻辑运算符|位运算符

    Python的运算符是用于执行各种操作的符号或符号组合。它们用于操作数据并进行算术、比较、逻辑和其他类型的运算。我们所熟知的加减乘除也是运算符中的一种。Python提供了多种类型的运算符,有算术运算符,比较运算符,赋值运算符,逻辑运算符,位算符等等。 算术运算

    2024年02月09日
    浏览(52)
  • C++教程(11)——运算符(上)

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他

    2024年02月09日
    浏览(34)
  • TypeScript教程(四)基本运算符

    TypeScript包含以下几种运算符: 1.算术运算符 2.逻辑运算符 3.关系运算符 4.按位运算符 5.赋值运算符 6.三元/条件运算符 7.字符串运算符 8.类型运算符 y=5 运算符 描述 例子 x 运算结果 y 运算结果 + 加法 x=y+2 7 5 - 减法 x=y-2 3 5 * 乘法 x=y*2 10 5 / 除法 x=y/2 2.5 5 % 取模(余数) x=y%2 1

    2024年02月12日
    浏览(39)
  • 4、Java入门教程【运算符】

    java中的运算符可以分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B等于200 / 除法 - 左操作数除以

    2024年02月16日
    浏览(37)
  • [开发语言][C++]:递增递减运算符

    递增运算符和递减运算符为对象的+1和-1提供了简洁的书写形式。 自增自减运算符的应用: 这两个运算符除了应用在算术运算,还可应用于迭代器,因为很多迭代器并不支持算术运算。 递增和递减运算符有两种书写形式:前置版本和后置版本。 前置版本 ++i --i :首先将运算

    2024年01月25日
    浏览(47)
  • iOS开发Swift-基本运算符

    一元 单一操作对象 -a    !b    c! 二元 两个操作对象 2 + 3 三元 三目运算符 a ? b : c 赋值运算符不返回任何值,所以 if x = y { ... } 无效。 +   -   *   / 默认不允许数值运算中溢出。 溢出运算符:   a + b a % b = 余数 a = (b * 倍数) + 余数 所以a % b = a % -b ==     !=         

    2024年02月11日
    浏览(44)
  • 第三章:最新版零基础学习 PYTHON 教程(第十五节 - Python 运算符—Python 成员身份和身份运算符)

    在本文中,我们将学习 Python 成员资格和身份运算符。 会员运营商 Python 提供了两个成员资格运算符来检查或验证值的成员资格。它测试序列(例如字符串、列表或元组)中的成员资格。  in 运算符:  “in”运算符用于检查序列中是否存在字符/子字符串/元素。如果在序列中

    2024年02月07日
    浏览(44)
  • 【Go】Go 语言教程--GO语言运算符(七)

    往期教程: Go 语言教程–介绍(一) Go 语言教程–语言结构(二) Go 语言教程–语言结构(三) Go 语言教程–数据类型(四) Go 语言教程–语言变量(五) Go 语言教程–GO语言常量(六) 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算

    2024年02月12日
    浏览(55)
  • 黑马程序员Java零基础视频教程笔记-运算符

    1. 运算符和表达式 ① 运算符:对字面量或者变量进行操作的符号 ② 表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。 不同运算符连接的表达式体现的是不同类型的表达式。 ③ 举例 int a = 10; int b = 20; int c = a + b; +:是运算符,并且是算术

    2024年02月01日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包