在文本文件中添加新行的最佳变体是什么?

亚力山大

我正在使用以下代码在文件末尾添加新行:

let text = "New line".to_string();

let mut option = OpenOptions::new();
option.read(true);
option.write(true);
option.create(true);

match option.open("foo.txt") {
    Err(e) => {
        println!("Error");
    }
    Ok(mut f) => {
        println!("File opened");
        let size = f.seek(SeekFrom::End(0)).unwrap();
        let n_text = match size {
            0 => text.clone(),
            _ => format!("\n{}", text),
        };
        match f.write_all(n_text.as_bytes()) {
            Err(e) => {
                println!("Write error");
            }
            Ok(_) => {
                println!("Write success");
            }
        }

        f.sync_all();
    }
}

它有效,但我认为这太困难了。我找到了option.append(true);,但是如果我使用它而不是option.write(true);“ Write error”。

Shepmaster

使用OpenOptions::append是添加到文件的最清晰方法:

use std::fs::OpenOptions;
use std::io::prelude::*;

fn main() {
    let mut file = OpenOptions::new()
        .write(true)
        .append(true)
        .open("my-file")
        .unwrap();

    if let Err(e) = writeln!(file, "A new line!") {
        eprintln!("Couldn't write to file: {}", e);
    }
}

从Rust 1.8.0(commit)和RFC 1252开始append(true)意味着write(true)这不再是问题。

锈1.8.0之前,您必须使用两个 writeappend-第一个允许你写字节到一个文件,第二个指定了字节将被写入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从文本文件中读取字符同时忽略新行中的额外空格的最佳方法是什么?

在Java中读取文本文件的最后一行的最佳方法是什么?

无法在文本文件的新行中添加记录

导入、读取和添加到保存在文本文件中的列表的最佳方法是什么?

在文本文件中搜索连续重复并返回数量最多的文本的最佳方法是什么?

向文本文件添加新行并从上次添加中获取行

在文本文件中添加新行文本

从文本文件读取特定行的方法是什么?

每次读取文本文件并添加新行;出现

文本文件中^ @ ^ @ ^ @是什么意思?

Java从文本文件中获取行,创建新的文本文件并插入

如何在Android中的文本文件上添加新行

Java:如何在现有文本文件中添加新的String行?

在大型文本文件中查找多个字符串列表的最佳方法是什么

使用 blob 在文本文件中需要新行

在新的文本文件中打印替换的行

在文本文件中添加所有行的值?

如何在文本文件中添加/删除行?

如何从xml标记获取值并将其保存在文本文件中,并在文本文件末尾添加新行以及计数

将文本文件转换为pandas数据框的最佳方法是什么?

从JSON文本文件加载JSONObject的最佳方法是什么?

将平铺网格保存到 Java 游戏的文本文件的最佳方法是什么?

从文本文件中提取片段的最佳方法是什么?

将“纱线审核”结果保存到文本文件的最佳方法是什么?

我想用python在文本文件的每一行中的'http'之前添加新行

在文本文件中添加标题

在文本文件中添加引号

向文本文件添加新的文本行

为什么我无法在Java中将文本文件中的行添加到ArrayList中?