gpt4 book ai didi

string - 如何在 Rust 中删除文本文件的第一行?

转载 作者:行者123 更新时间:2023-12-03 11:35:25 25 4
gpt4 key购买 nike

我有一个 ./file.txt 是:

Lorem ipsum
dolor sit
amet

我希望相同的 ./file.txt 是:

dolor sit
amet

我不关心任何其他方式的文件;我不会对它做任何进一步的操作或类似的事情。我只想去掉第一行。


std::fs::write 覆盖文件的全部内容。我假设我需要将整个文件读入一个字符串,从字符串的开头删除所有内容,直到找到一个新行(以某种方式),然后用该新字符串覆盖整个文件。虽然也许只有我一个人,但所有这些都感觉有点矫枉过正。我不关心文件的全部内容。

我问的原因是因为我根本不知道该怎么做,尤其是如果有更好的方法来处理这整件事的话。如果有一个明显简单的答案那就太好了。

This question已回答 Rust 1.0,它已经过时 ,以至于 BufReader.lines() 不再存在。

最佳答案

做了更多研究,这是我最终得到的最接近的结果。

我不知道这是否是最优的,并且我不完全确定这会保留文件的格式(尽管我认为它会保留)。我也认为可能有更好的加载文件的方法。我不知道很多事情。

但它有效吗?

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

fn main() {
let mut file = OpenOptions::new()
.read(true)
.write(true)
.open("./file.txt")
.expect("file.txt doesn't exist or so");

let mut lines = BufReader::new(file).lines().skip(1)
.map(|x| x.unwrap())
.collect::<Vec<String>>().join("\n");

fs::write("./file.txt", lines).expect("Can't write");
}

关于string - 如何在 Rust 中删除文本文件的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62762204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com