此問題已經多次回答。插入或更新文件中間字節的最佳方法
人們認爲唯一的方法是將舊文件的字節複製到新文件中,然後插入新字節並完成舊文件中剩餘字節的複製。然後刪除舊文件並重命名新文件。
但我的問題是關於什麼技術應用最好的文本/二進制編輯器。如果我打開一個非常大的二進制文件(480MB),並在HxD和記事本++的開頭添加4個字節,似乎程序正在複製整個文件,因爲我可以看到硬盤上的100%活動和正在寫入的數據速度(以〜100MB/s寫3-4秒)。我想假設唯一的方法是將數據複製到臨時文件?
此問題已經多次回答。插入或更新文件中間字節的最佳方法
人們認爲唯一的方法是將舊文件的字節複製到新文件中,然後插入新字節並完成舊文件中剩餘字節的複製。然後刪除舊文件並重命名新文件。
但我的問題是關於什麼技術應用最好的文本/二進制編輯器。如果我打開一個非常大的二進制文件(480MB),並在HxD和記事本++的開頭添加4個字節,似乎程序正在複製整個文件,因爲我可以看到硬盤上的100%活動和正在寫入的數據速度(以〜100MB/s寫3-4秒)。我想假設唯一的方法是將數據複製到臨時文件?
將字節添加到/從其他位置以外的文件的唯一方法是在這些字節之後重寫任何內容。你可以這樣做,但使用臨時文件通常更容易和更安全,因爲直到寫入新文件之前原始文件才被觸摸。
要在原位插入N個字節,您需要從要插入位置的位置讀取至少N個字節。然後你寫新的字節,覆蓋N個字節。但你只是閱讀它們,所以你現在可以把它們寫回來。但是,這將再次覆蓋N個字節,因此您需要先閱讀這些字節。正如你所看到的,它涉及到很多尋找 - 將所有剩餘數據存儲在內存中對於不太大的文件來說更容易和更快。對於大文件,通常使用臨時文件來避免這種麻煩。