[英]how to modify some of the contents of the file and save in the same file using java
我有一個單詞及其頻率計數的文本文件。 當我給出與文本文件中的單詞匹配的任何單詞時,則需要增加其頻率計數。 如何更改文本文件中的值? 如何在Java中執行此過程。 請提出任何想法。 提前致謝。
myfile.txt
word 4
self 5
defence 3
argue 7
當我給“自我”一詞時,則在“ myfile.txt”的相同文本文件中,它需要覆蓋為
word 4
self 6
defence 3
argue 7
您不能在文本文件中插入字符,只能替換或附加數據。
換句話說,如果從去9
到10
,你必須對所有字符轉變之后的9
一步向右,以騰出空間10
。
在不直接回答您的問題的同時,請考慮使用java.lang.Properties
來管理文件:
Properties
具有用於讀取和寫入文件的load()
和store()
方法 最好的方法,恕我直言,是使用第三方API來處理所有讀寫操作。 我最喜歡的是http://commons.apache.org/io/查看類FileUtils。 我認為它包含您需要的所有方法。
如果您有足夠的空間來寫入遞增的值,可以通過填充一些空格來讀取/寫入文件,例如:
word 4___
self 11__
defence 3___
argue 7___
但是您需要一個上限才能提前知道。
您可以使用二進制表示形式,並以4個字節存儲32位int,但是那樣您將失去文件的可讀性。
解決此問題的典型解決方案是為此類工作而創建的數據庫-看起來可能過大,但是今天,有許多小型內存數據庫可用。 我上一次使用它是幾年前的hsqldb。
用一個
Map<String,Integer> words = new HashMap<String,Integer>();
存儲所有單詞數。 然后,您可以按照自己喜歡的格式輕松地將所有密鑰保存到文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.