首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java属性文件中表示数组的更好方法

在java属性文件中表示数组的更好方法
EN

Stack Overflow用户
提问于 2011-08-11 01:56:02
回答 10查看 126.8K关注 0票数 58

我目前正在制作一个需要加载并转换为数组的.properties文件。但是每个属性键都有可能存在于0-25之间。我尝试了几个实现,但我只是坚持干净利落地做这件事。有谁有什么想法吗?

代码语言:javascript
复制
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]

属性文件的格式可以更改,我对此持开放态度。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-08-11 02:27:02

要么定义一个不是潜在值的分隔符,要么学习使用XML。

如果您仍然坚持使用属性,请使用将返回所有键列表的方法之一。键看起来有三个部分,一个组标识符(foo,bar),一个索引(1,2),然后是一个元素名(filename,expire)。获取所有的密钥,将它们分解为组件部分。为每种类型的标识符创建一个列表,在处理该列表时,使用该标识符来确定要添加到哪个列表。像你说的那样创建成对的元素,然后简单地添加到列表中!如果索引顺序很重要,可以将其作为字段添加到成对的元素中,或者在处理之前对键进行排序。

票数 13
EN

Stack Overflow用户

发布于 2012-07-04 10:03:31

我可以建议使用分隔符,并使用

String.split(delimiter)

示例属性文件:

MON=0800#Something#Something1,Something2

代码语言:javascript
复制
prop.load(new FileInputStream("\\\\Myseccretnetwork\\Project\\props.properties"));
String[]values = prop.get("MON").toString().split("#");

希望这能有所帮助

票数 44
EN

Stack Overflow用户

发布于 2011-08-11 02:03:26

并不完全符合你的意图。一定要检查Apache Commons配置库http://commons.apache.org/configuration/

一个键可以有多个值,就像在key=value1、value2中一样,并且可以像configuration.getAsStringArray("key")一样将其读入数组

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7015491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档