如何修改文件的一些内容并使用java保存在同一个文件中

时间:2012-05-22 11:55:01

标签: java

我有一个单词的文本文件及其频率计数。当我给出任何与文本文件中的单词匹配的单词时,我需要增加其频率计数。如何更改文本文件中的值?如何在Java中执行此过程。请提出任何想法。提前谢谢。

myfile.txt

word    4
self    5
defence 3
argue   7

当我给出“self”这个词时,那么在“myfile.txt”的同一文本文件中,它需要覆盖为

word    4
self    6
defence 3
argue   7

5 个答案:

答案 0 :(得分:2)

您无法在文本文件中插入字符,只能替换追加数据。

换句话说,如果您从9转到10,则必须将9一步后的所有字符向右移动,以便为{{10腾出空间1}}。

答案 1 :(得分:1)

虽然没有直接回答您的问题,但请考虑使用java.lang.Properties来管理文件:

  • 每个是唯一值,可以使用属性名称(键)
  • 频率计数是与每个
  • 相关联的值
  • Propertiesload()store()方法用于读取和写入文件

答案 2 :(得分:0)

最好的方法,恕我直言,是使用第三方API来处理所有的阅读和写作。我最喜欢的是http://commons.apache.org/io/ 查看类FileUtils。我认为它包含了你需要的所有方法。

答案 3 :(得分:0)

你可以读/写文件,如果你有足够的空间来写增值,可以填写一些空格,例如:

word    4___
self    11__
defence 3___
argue   7___

但是您需要提前知道上限。

您可以使用二进制表示并以4个字节存储32位整数,但之后您将失去文件的人类可读性。

针对您的问题的典型解决方案是一个数据库,它是为这些作业而设计的 - 它可能看起来过大,但今天,有许多小的内存数据库可用。几年前我最后一次使用它是hsqldb。

答案 4 :(得分:0)

使用

Map<String,Integer> words = new HashMap<String,Integer>();

存储所有单词计数。 然后,您可以轻松地将所有键以您喜欢的格式保存到文件中