是否有可能从大文件的中间有效地插入或删除字节,如果是这样的话?或者我是否在插入或删除数据之后重写整个文件?
[A lot of Bytes][Unwanted Bytes][A lot of Bytes] - > [A lot of Bytes][A lot of Bytes]
or
[A lot of Bytes][A lot of Bytes] - > [A lot of Bytes][New Inserted Bytes][A lot of Bytes]
Run Code Online (Sandbox Code Playgroud)
最有效的方法是寻找要插入元素的位置,读取所有内容直到最后,插入新元素并将其余元素复制回来。
问题不在于语言,而在于实际上数据如何存储在媒体中,其中所有内容都只是一长串位。您可以将其想象为一张用笔写下数据的纸条。如果你想插入一些东西,你就必须推迟之后出现的所有内容。当然,如果数据块之间有很多空白空间,您可以在其中插入内容(这就是稀疏文件背后的想法),但这几乎不节省空间。