在属性文件中存储地图

Lem*_*nio 9 java config properties hashmap map

我知道我可以建立如下地图.

private static final ImmutableMap<String,String> WordMap = 
ImmutableMap.<String, String>builder()
.put("blah", "blahblah").put("blabla", "blahblahblah").build()
Run Code Online (Sandbox Code Playgroud)

我想将我的地图的值存储在配置文件中.我已经通过执行values=value1,value2,value3然后在配置文件中存储不同哈希集的值
new HashSet<String>(Arrays.asList(prop.getProperty(values).split(",")))

我想为我的地图做类似的事情.有小费吗?我正在使用java.util.Properties

dna*_*ult 21

既然您已经表明不想使用JSON,那么您可以将地图存储为单个属性,如下所示:

map=key1=value1,key2=value2,key3=value3
Run Code Online (Sandbox Code Playgroud)

使用Guava的Splitter和Joiner来简化读写地图:

String formatMap(Map<String, String> map) {
    return Joiner.on(",").withKeyValueSeparator("=").join(map);
}

Map<String, String> parseMap(String formattedMap) {
    return Splitter.on(",").withKeyValueSeparator("=").split(formattedMap);
}
Run Code Online (Sandbox Code Playgroud)

只要键和值不包含","或"="字符,这将起作用.