从我在互联网和书籍上看到的内容,编辑文本文件或任何文件时,文件必须完全重写; 您不能只将数据插入文件并保存.
如果是这样,编程语言中的数组怎么样?在C++中,我可以显式修改数组中间的某些值.对我来说,这似乎是在一组字节中间修改一个或两个字节的演示.
我想到的唯一两种可能的解决方案是
将数据写入文件和将数据写入数组有什么区别?
您可以更改数组中特定位置的值,而无需重写整个事物.但是,为了腾出空间,不能在新值之后移动所有内容,也不能在数组中间插入新值.
类似地,您可以覆盖文件的各个部分而不复制它(尽管底层存储技术可能需要重新编写整个存储块以更改该块中的单个字节),但是如果不以某种方式不能插入新数据为它腾出空间.文本编辑器(以及更复杂文件格式的编辑器)是为不保留长度的随机访问修改而设计的,因此它们通常会重写整个文件而不管更改的内容,而不是尝试优化长度保留编辑.