0

我有一个 java 库,我需要将其视为黑盒,并且需要在类路径上存在一个属性文件。但是,我有一个系统,它只允许提供包含有效 xml 的配置文件。

由于 jar 的黑盒性质,我无法使用该loadFromXml()方法重新编译,或者要求所有者这样做。

为了解决这个明显的不匹配,我已经能够提供一个如下所示的配置文件:

<dummy>
key1=value1
key2=value2
</dummy>

这可以正常工作并提供我想要访问的值。

我找不到有关此格式错误的属性文件的第一行和最后一行发生了什么的参考。

有人知道会发生什么吗?他们有更好的解决方案吗?

4

1 回答 1

3

您最终会得到一个空字符串值,用于键"<dummy>""</dummy>". 您可以轻松地展示这一点:

import java.io.*;
import java.util.*;
public class Test {
    public static void main(String[] args) throws IOException {
        Properties properties = new Properties();
        try (InputStream input = new FileInputStream("test.properties")) {
            properties.load(input);
        }

        for (String key : properties.stringPropertyNames()) {
            System.out.println(key + " = '" + properties.get(key) + "'");
        }
    }
}

这至少在这部分的文档中有所说明:

作为第三个示例,该行:

cheeses

指定键是“奶酪”,关联元素是空字符串“”。

......但它并没有像它可能的那样清楚地写出来。

于 2013-11-13T17:00:00.580 回答