我目前正在制作一个需要加载并转换为数组的.properties文件。但是每个属性键都有可能存在于0-25之间。我尝试了几个实现,但我只是坚持干净利落地做这件事。有谁有什么想法吗?
foo.1.filename=foo.txt
foo.1.expire=200
foo.2.filename=foo2.txt
foo.2.expire=10
etc more foo's
bar.1.filename=bar.txt
bar.1.expire=100在这里,我将把文件名/过期对组装成一个数据对象,作为每个父属性元素的数组的一部分,比如foo[myobject]
属性文件的格式可以更改,我对此持开放态度。
发布于 2011-08-11 02:27:02
要么定义一个不是潜在值的分隔符,要么学习使用XML。
如果您仍然坚持使用属性,请使用将返回所有键列表的方法之一。键看起来有三个部分,一个组标识符(foo,bar),一个索引(1,2),然后是一个元素名(filename,expire)。获取所有的密钥,将它们分解为组件部分。为每种类型的标识符创建一个列表,在处理该列表时,使用该标识符来确定要添加到哪个列表。像你说的那样创建成对的元素,然后简单地添加到列表中!如果索引顺序很重要,可以将其作为字段添加到成对的元素中,或者在处理之前对键进行排序。
发布于 2012-07-04 10:03:31
我可以建议使用分隔符,并使用
String.split(delimiter)
示例属性文件:
MON=0800#Something#Something1,Something2
prop.load(new FileInputStream("\\\\Myseccretnetwork\\Project\\props.properties"));
String[]values = prop.get("MON").toString().split("#");希望这能有所帮助
发布于 2011-08-11 02:03:26
并不完全符合你的意图。一定要检查Apache Commons配置库http://commons.apache.org/configuration/
一个键可以有多个值,就像在key=value1、value2中一样,并且可以像configuration.getAsStringArray("key")一样将其读入数组
https://stackoverflow.com/questions/7015491
复制相似问题