java.util.Properties 中的多个值

2022-09-01 03:32:59

java.util.Properties 似乎假定每个属性键有一个值。那是

foo=1
foo=2

不是预期的,

是否有用于此类多值属性表的类,该类也提供 load 方法?


答案 1

尝试:

foo=1,2

String[] foos = properties.getProperty("foo").split(",");

答案 2

java.util.Properties 函数非常有限。如果你想要支持列表,你可能需要尝试从Apache Commons Configuration的PropertyConfiguration,

http://commons.apache.org/configuration/userguide/howto_properties.html#Using_PropertiesConfiguration

有了它,您可以为列表设置任何分隔符,它将自动为您拆分。您还可以在属性文件中执行其他花哨的事情。例如

foo=item1, item2
bar=${foo}, item3
number=123

你可以像这样检索它,

Configuration config = new PropertiesConfiguration("your.properties");
String[] items = config.getStringArray("bar"); // return {"item1", "item2", "item3"}
int number = config.getInt("number", 456); // 456 is default value