我有一个hashMap(guava bimap),其中键和值都是字符串,我想编写一个解析给定文件的程序,并用Biima中相应的值替换文件中同样存在于BiMap中的所有字符串。
例如:我有一个名为test.txt的文件有以下文字
Java is a set of several computer software and specifications developed by Sun Microsystems.
我的BiMap有
"java i" => "value1"
"everal computer" => "value2"
等。
所以现在我希望我的程序将test.txt和Bimap作为输入并给出一个看起来像这样的输出
value1s a set of svalue2 software and specifications developed by Sun Microsystems.
请指出我可以做任何算法,程序将大文件作为输入,所以蛮力可能不是一个好主意。
编辑:我使用固定长度的字符串作为键和值。 该示例仅用于显示操作。 谢谢。
答案 0 :(得分:1)
对于像这样的批量操作,我会避免将大量数据放入内存中。因此,我建议您将新内容写入新文件。如果最后的文件必须是完全相同的文件,则在过程结束时仍可以用另一个文件替换另一个文件。分别读取,写入和刷新每一行,你就不会有任何内存问题。