簡體   English   中英

使用RandomAccessFile刪除文件內容

[英]Delete file contents using RandomAccessFile

我有一個包含很多零的文件,根據要求,文件中的零是無效的。 我正在使用RandomAccessFile api在文件中定位數據。 有沒有辦法使所有零都可以使用相同的api從文件中刪除。

您將必須流傳輸該文件並將內容(減去零)寫到一個單獨的臨時文件中。 然后,您可以關閉並刪除原始文件,然后將新文件重命名為舊文件名。 對於這種特定的用例,這是您的最佳選擇。

您可以使用RandomAccessFile來讀取文件的數據,當到達需要更改數據的位置時,可以用相等的字節數覆蓋現有的字節數。 如果新值與舊值的長度完全相同。

使用RandomAccessFile時,當兩個大小(一個被更改的值和新值)不同時,將變得困難而同樣復雜。 它涉及大量查找,讀取和寫入操作,以將數據移回

嘗試讀取整個文件,更改要更改的位並寫入新文件。 您可以一次處理一行,也可以將整個文件讀入內存,對其進行修改,然后再次全部寫回。 最好按以下方式執行編輯:

  1. 讀取檔案
  2. 寫入臨時文件[僅備份]
  3. 將原件重命名為備份
  4. 處理臨時文件。
  5. 如果成功,請刪除備份。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM