使用Properties </object,>将ListMultimap <object,object =“”>写入和读取到文件

时间:2013-07-17 10:58:23

标签: java json properties guava multimap

如何使用属性将ListMultimap写入和读取文件?

我有一个index如下:

ListMultimap<Object, Object> index = ArrayListMultimap.create();

并使用indexProperties写入文件,如下所示:

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类似于:

listMultiMap

其中,index == listMultimap

我不知道我哪里错了。

0 个答案:

没有答案