假设我有一个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();
有了这个,我得到一个包含每个地图密钥的所有数据的文件。您能否建议我如何每次只从文件中获取当前密钥的数据?
答案 0 :(得分:1)
如果你想使用同一个文件并且只是为它添加行,请使用FileWriter
并将追加模式设置为true
PrintWriter writer = new PrintWriter(new FileWriter("filename", true));
这会将行附加到文件,而不是写入文件。这样,不同的进程可以使用相同的文件并继续向文件中添加新数据
答案 1 :(得分:0)
那么对我有用的是将这一行包含在主要问题帖子中箭头位置的for循环中:
PrintWriter writer = new PrintWriter(new FileWriter("filename"));