2010-11-01 81 views
0

使用FileWriter寫入文件時可以移動文件的內容嗎?
我需要寫數據常量到文件的頭部,如果我這樣做,它會覆蓋文件。
我應該使用什麼技術來做到這一點,或者我應該在每次寫入文件時製作文件的副本(頂部有新數據)?寫入時移動文件?

回答

1

如果您想覆蓋文件的某些字節而不是其他文件,可以使用seek和write來完成。如果要更改文件中每個字節的內容(例如,通過將單個字節添加到文件的開頭),則需要編寫一個新文件,並在完成寫入後重新命名它。

想想這個問題的答案:「完成後,偏移量x處的字節內容是什麼?」。如果對於x的可能值的很大百分比,答案是「不是以前的」,那麼你需要一個新的文件。

0

我們可以改變思維模式,問爲什麼文件系統或硬盤固件不能與我們自己提出的問題「偏移量x的字節內容是什麼?」做:a)提供另一種訪問文件的模式[比方說,內聯] b)通過在前面或中間甚至在結尾添加的字節數增加文件的長度c)移動每個開始的字節從newcontent.length位置截取

在磁盤固件或文件系統實現級別處理這些操作比將應用程序交給應用程序開發人員更容易和更快。我希望文件系統編寫者或硬盤供應商能儘快提供這樣的功能。

Regards, Samba