[英]Java - overwriting specific parts of a file
我想使用Java更新文本文件的特定部分。 我希望能夠瀏覽文件並選擇要更新的特定行,有點像數據庫中的行,例如給定文件:
ID Value
1 100
2 500
4 20
我想插入3並更新4,例如
ID Value
1 100
2 500
3 80
4 1000
有沒有辦法實現這個(看似)簡單的任務? 我知道您可以附加到文件,但是我對隨機訪問更感興趣
將文件加載到內存中,更改您的值,然后重新寫入文件
如果有一種方法可以在不加載文件的情況下將其插入文件,則我從未聽說過。 您必須先將其他數據移開。
除非您經常處理大文件,否則性能並不是太大的問題
我知道您可以附加到文件,但是我對隨機訪問更感興趣
您正在嘗試在文件中間插入和刪除字節。 你不能那樣做。 文件系統根本不支持(通常)。 您可以覆蓋特定的字節,但不能插入或刪除它們。
如果您的記錄是固定長度(以字節為單位),則可以使用隨機訪問來更新特定記錄,但事實並非如此。
您既可以將整個文件加載到內存中,也可以從原始文件中讀取,然后每行將舊數據或新數據寫入新文件中。
您可以使用Java中的隨機訪問文件來執行此操作,在其中可以使用可用方法放置當前的讀寫位置。 你可以在這里探索更多
正如前面的答案所言,不可能使用流來做到這一點。 您可以嘗試使用可以在文本文件中保存和修改的屬性(即鍵,值對)。 例如,您可以使用以下命令將新屬性添加到文件中
setProperty(String key, String value)
此方法添加一個新屬性,或者如果已經存在,則使用selectedn鍵修改該屬性的值。
顯然,新屬性被添加到文件的末尾,但是缺少排序對於性能而言不是問題,因為對文件的訪問是通過調用Hashtable方法的getProperty方法進行的。
有關示例,請參見本教程:
http://docs.oracle.com/javase/tutorial/essential/environment/properties.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.