2

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

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

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

3 回答 3

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")));
于 2013-03-18T05:48:21.793 回答
1

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

于 2013-03-18T05:55:22.850 回答
0

属性类是一个旨在加载配置的实用程序。

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

如果您的要求是以自定义格式存储一些数据,您可以随时阅读它们并使用手动解析配置Scanner

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

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

于 2013-03-18T05:47:12.257 回答