0

如何使用属性将 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。所以我将它转换为Mapusing method toMap()。但是,Properties 似乎仍然无法正确获取地图。

笔记:

我尝试listMultimap通过使用 Gson 将其转换为 JSON 来打印,但这也无法转换为字符串。没有发生异常,但它返回空字符串。实际listMultimap 是这样的:

listMultiMap

哪里,index == listMultimap

我不知道我要去哪里错了。

4

0 回答 0