我希望在我的java应用程序的属性文件中为单个值提供多个键(> 1)。一种简单的方法是在属性文件中的单独行中定义每个键,并为所有这些键定义相同的值。这种方法增加了属性文件的可维护性。另一种方式(我认为可能是聪明的方式)是使用单行中的值定义逗号分隔的键。 e.g。
key1,key2,key3=value
Java.util.properties不支持此功能。以前有人做过类比吗?我做谷歌但没有找到任何东西。
- manish
答案 0 :(得分:5)
我不知道现有的解决方案,但实施起来应该非常简单:
String key = "key1,key2,key3", val = "value";
Map<String, String> map = new HashMap<String, String>();
for(String k : key.split(",")) map.put(k, val);
System.out.println(map);
答案 1 :(得分:4)
属性文件的一个好处是它们很简单。没有复杂的语法可供学习,而且它们很容易被人看到。
想知道属性foo
的价值是多少?快速扫描左栏,直到看到“foo”。
就个人而言,如果我看到类似的属性文件,我会觉得很困惑。
如果那是你真正想要的,那么实施起来应该很简单。快速的第一次刺伤可能如下所示:
trim()
空白=
”(限制设为2),为您提供密钥和值,
”trim()
并将其添加到地图中,并附加trim()
'd值就是这样。
答案 2 :(得分:2)
自java.util.Properties
扩展java.util.Hashtable
以来,您可以使用Properties
加载数据,然后对数据进行后期处理。
使用java.util.Properties
加载数据而不是自己滚动数据的好处是,属性的语法实际上是fairly robust,已经支持了许多有用的功能,您可能最终必须重新使用实现(例如跨多行,转义等分割值)。