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

jav*_*oob 20 java properties

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

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

    String key = (String)en.nextElement();
    System.out.println("Property name is "+key);
}
Run Code Online (Sandbox Code Playgroud)

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

username=
password=
Parent file name=
Child file name =
Run Code Online (Sandbox Code Playgroud)

运行代码后,我输出为:

username password Parent Child
Run Code Online (Sandbox Code Playgroud)

如果属性名称有空格,则只返回第一个单词.

任何人都可以告诉我该怎么做?

ckl*_*lab 41

您可以转义属性文件中的空格,但我认为它看起来会非常难看.

username=a
password=b
Parent\ file\ name=c
Child\ file\ name=d
Run Code Online (Sandbox Code Playgroud)

您可能更愿意使用split()或者indexOf()您希望的任何内容编写自己的实现,以避免任何未来的错误和/或头痛.

  • 一个半随机添加:使用属性文件时要非常小心,以避免在属性末尾出现意外的空格!虽然忽略了'='周围的空白,但最后的空白不会,并且会导致拔毛. (2认同)

ksh*_*hen 6

Java.util.Properties,=,:,或空白字符是键/值定界符时从属性文件负载.

下面是它的详细Javadoc public void load(Reader reader)

关键包含了所有的从第一个非空格字符以及高达行的字符,但不包括第一转义=,:或比行结束符等空白字符.所有这些密钥终止字符都可以通过使用前面的反斜杠字符转义它们来包含在密钥中.http://docs.oracle.com/javase/6/docs/api/