文本编辑器如何插入文本?

4
假设我用记事本写了一封信并将其保存为letter.txt。然后我意识到我忘了在信中说一件事。所以我使用任何文本编辑器(如记事本、Wordpad或其他)打开了letter.txt。现在我在文件的中间插入了我想说的字母。它是如何工作的?
例如:这里有一条消息:
“嗨,你好吗。今天我想见你。谢谢。”
实际上,它存储在内存中,像这样:
“Hi,\nHow\0are\0you.\0TodayToday\0i\0want\0to\nmeet\0you.\nThank\0you.”
现在我想在“你好吗”之后添加“I am fine”。它是如何工作的?它是如何在文件中间添加的?其他单词又是如何不被覆盖的?这背后的过程是什么?

小细节:在记事本中使用 \r\n 而不是 \n,而且你放置的 \0 只是一个普通的空格字符。 - Alex K.
\0是空字符。它甚至不会在简单文本编辑器中显示,并且绝对不是空格字符,其中有许多种类。 - Yay295
1个回答

1

对于小文件,文本编辑器只需将整个文件读入内存。当您修改文本时,文本编辑器会修改内存中的版本。然后,当您保存时,文本编辑器会使用新内容覆盖原始文件--因此整个文件被覆盖,并且文本按原样写入文件,没有任何引用或其他技巧。


所以你想让我复制原始文件进行编辑,然后用它替换原始文件? - Heartly
我不需要你做任何事情;我只是在解释像记事本这样的文本编辑器是如何工作的。 - Roy Dictus
如果是小文件,Roy建议使用@Heartly提到的方法是最好的。 - kenny
@kenny:谢谢您,肯尼先生。那么对于大文件,有什么解决方案吗? - Heartly
@Heartly 将非活动区域分页到磁盘。 - kenny
大文件怎么办? - Hello World

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接