如何在java中读取带有空格的属性名称

2022-09-02 05:33:47

我正在尝试使用以下代码加载属性文件中存在的所有属性名称:

for(Enumeration<String> en = (Enumeration<String>) prop.propertyNames();en.hasMoreElements();){

    String key = (String)en.nextElement();
    System.out.println("Property name is "+key);
}

但是我的属性文件有以下内容:

username=
password=
Parent file name=
Child file name =

运行代码后,我得到的输出为:

username password Parent Child

如果属性名称包含空格,则仅返回第一个单词。

任何人都可以告诉我如何做到这一点吗?


答案 1

您可以转义属性文件中的空格,但我认为它会开始看起来很丑陋。

username=a
password=b
Parent\ file\ name=c
Child\ file\ name=d

你最好用split()indexOf()或任何你心中想要的东西来编写自己的实现,以避免任何未来的错误和/或头痛。


答案 2

在 、、或空格中,字符是从属性文件加载时的键/值分隔符。Java.util.Properties=:

以下是其Javadoc的详细情况public void load(Reader reader)

该键包含行中以第一个非空格字符开头的所有字符,以及行终止符以外的第一个未转义 、或空格字符(但不包括)。的所有字符。所有这些关键终止字符都可以包含在密钥中,方法是使用前面的反斜杠字符对其进行转义。http://docs.oracle.com/javase/6/docs/api/=: