例如, 用Rust往一个文件里面写入东西, 最简单的:
use std::fs::OpenOptions;
use std::io::{Result, Write};
fn main() -> Result<()> {
let mut fp = OpenOptions::new()
.write(true)
.create(true)
.open("foo.txt")?;
fp.write_all(b"hello world")
}
那么, 如何做删除文件内容操作呢.
例如: cargo run
之后, 文件内容由hello world
变成world
.
1
共 14 条评论, 1 页
评论区
写评论你得自己对文件进行分析。 文本编辑器的基本思想是把文本分成许多小块,更改时修改对应的块内容,最后拼接起来输出。
要不这样, 你写个demo, 我叫你一声爸爸。
我给你填了个模板, 请帮忙把注释的那行实现一下可以吗? (需要考虑到的是,如果文件内容很多很多呢.)
对以下内容的回复:
拒绝伸手党
能不能写几行代码, 给我看看呢?
对以下内容的回复:
编辑器就是这样干的。
既然是编程小白,欢迎入手 Rust,一劳永逸。
那比如说, 我们的编辑器, 打开之后, 你删除一点东西, 保存, 难道也要重写?
对以下内容的回复:
按你这个说法, 如果我有很大的文件, 就拿数据库的存储文件来说吧, 难道删除一条记录还要先全部读出来, 然后重新写?
不需要,数据库有很多方式做这个事情。基本的想法是写一条这一行被删除了的记录,之后再合并。 裸文件确实只能这样。题目补一补计算机基础。。。
对以下内容的回复:
按你这个说法, 如果我有很大的文件, 就拿数据库的存储文件来说吧, 难道删除一条记录还要先全部读出来, 然后重新写?
对以下内容的回复:
按你这个说法, 如果我有很大的文件, 就拿数据库的存储文件来说吧, 难道删除一条记录还要先全部读出来, 然后重新写?
全部读出来,删除,再全部重头写进去。
再问的话,就得补补计算机文件操作基本知识了。
比如, 我有一个文件, 内容为: "1 2 3 4 5", 我想删除 "3", 怎么做呢?
对以下内容的回复:
比如, 我有一个文件, 有一百行, 我想删除里面的几行, 这该怎么做呢? (别看我给的实例代码啊, 那个仅作为聊天的时候钩出话题用的.
对以下内容的回复:
能否写几行示例代码?(因为我别的语言怎么做的, 我也不知道...
跟其它语言文件操作一样的,seek 了解一下。
https://doc.rust-lang.org/std/fs/struct.File.html#method.seek