如何使用属性将 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
using method toMap()
。但是,Properties 似乎仍然无法正确获取地图。
笔记:
我尝试listMultimap
通过使用 Gson 将其转换为 JSON 来打印,但这也无法转换为字符串。没有发生异常,但它返回空字符串。实际listMultimap
是这样的:
哪里,index == listMultimap
。
我不知道我要去哪里错了。