在java中为Properties.load定义动态分隔符

时间:2013-03-18 05:36:31

标签: java properties

我知道当字符串中的属性由\ n分隔时,可以将字符串中的属性加载到java.util.Properties中,如下所示。

有没有办法动态提供分隔符,例如:我们可以使用逗号(,)作为分隔符吗?

String  propertiesString = "#Namal=153\nJanith=253\nSameera=135";
Properties properties = new Properties();
properties.load(new StringReader(propertiesString));

3 个答案:

答案 0 :(得分:1)

您可以在将逗号加载到java.util.Properties之前使用换行符对其进行标记并加入它们。

下面的示例代码使用commons-lang并假设您使用的是UNIX换行符(\ n)

String propStr = "Monday=1,Tuesday=2,Wednesday=3";
String[] propsArray = StringUtils.split(propStr, ',');
Properties properties = new Properties();
properties.load(new StringReader(StringUtils.join(propsArray, "\n")));

答案 1 :(得分:1)

不,你不能这样做!而且它不值得,只需用一个字符串来做。 '\ n'是默认行分隔符,并且有一个LineReader内部类定义了行读操作的逻辑,我认为你没有机会与它进行交互。

答案 2 :(得分:0)

Properties类是一个用于加载配置的实用程序。

由于\ n是换行符,我只能假设选择它来使属性文件易于阅读。

如果您的要求是以自定义格式存储某些数据,您可以随时阅读它们并使用Scanner

手动解析配置

或者使用具有良好架构的XML配置文件。

BTW使用新线作为分隔符有什么问题?我只能假设您要使用Properties文件来加载不同类型的文件,因为对我来说,属性类的格式在可用性和可读性方面非常有意义。