如何使用属性将ListMultimap写入和读取文件?
我有一个index
如下:
ListMultimap<Object, Object> index = ArrayListMultimap.create();
并使用index
将Properties
写入文件,如下所示:
writeIndexToFile(ListMultimap<Object, Object> listMultimap, String fileName) {
Properties properties = new Properties();
properties = MapUtils.toProperties(toMap(listMultimap));
properties.store(new FileOutputStream(fileName),null);
}
其中,toMap()
方法是:
Map<Object, Object> toMap(ListMultimap<Object, Object> multiMap) {
if (multiMap == null) {
return null;
}
Map<Object, Object> map = new HashMap<Object, Object>();
for (Object key : multiMap.keySet()) {
map.put(key, multiMap.get(key));
}
return map;
}
运行此代码后,我发现输出文件为空。为什么什么都没有写入文件?
在上面的代码我不能直接调用:
MapUtils.toProperties(listMultimap);
因为listMultimap
不是Map
类型。所以我使用方法Map
将其转换为toMap()
。但似乎属性无法正确获取地图。
注意:
我尝试使用Gson将其转换为JSON来打印listMultimap
,但这也无法转换为字符串。没有发生异常,但它返回空字符串。实际listMultimap
类似于:
其中,index == listMultimap
。
我不知道我哪里错了。