如何在处理后替换文件的内容

时间:2013-12-23 01:03:06

标签: java

假设我有一个TreeMap,我想获取一个键的所有值,用这些值创建一个文件,将文件传递给另一个进程循环并为每个映射键执行此操作,所以我总是必须使用相同的文件,但每次密钥都必须替换其内容。

我的工作是:

PrintWriter writeRatings = new PrintWriter("ratings.txt", "UTF-8");
TreeMap<Integer, ArrayList<Rating>> ratings = new TreeMap<Integer, ArrayList<Rating>>();
-->
for(Integer clID:ratings.keySet()){
        ArrayList<Rating> ratingGroup = ratings.get(clID);
           for(Rating r:ratingGroup){
                witer.println(r.toString());
           }
 }
writer.flush();
writer.close();

有了这个,我得到一个包含每个地图密钥的所有数据的文件。您能否建议我如何每次只从文件中获取当前密钥的数据?

2 个答案:

答案 0 :(得分:1)

如果你想使用同一个文件并且只是为它添加行,请使用FileWriter并将追加模式设置为true

PrintWriter writer = new PrintWriter(new FileWriter("filename", true));

这会将行附加到文件,而不是写入文件。这样,不同的进程可以使用相同的文件并继续向文件中添加新数据

答案 1 :(得分:0)

那么对我有用的是将这一行包含在主要问题帖子中箭头位置的for循环中:

PrintWriter writer = new PrintWriter(new FileWriter("filename"));