加载多个属性文件

2022-09-02 02:27:09

是否可以在 Java 中堆叠加载的属性?例如,我可以做:

Properties properties = new Properties();

properties.load(new FileInputStream("file1.properties"));
properties.load(new FileInputStream("file2.properties"));

并从两者访问属性?


答案 1

您可以执行以下操作:

Properties properties = new Properties();

properties.load(new FileInputStream("file1.properties"));

Properties properties2 = new Properties();
properties2.load(new FileInputStream("file2.properties"));

properties.putAll(properties2);

注意:所有维护的密钥都是唯一的。因此,使用相同键加载的较晚属性将被覆盖。只是为了保持你的参考:)


答案 2

是的,属性堆栈。 扩展并简单地调用每个键值对。PropertiesHashtableload()put()

来自源代码的相关代码:

String key = loadConvert(lr.lineBuf, 0, keyLen, convtBuf); 
String value = loadConvert(lr.lineBuf, valueStart, limit - valueStart, convtBuf); 
put(key, value); 

换句话说,从文件加载不会清除当前条目。但是,请注意,如果两个文件包含具有相同键的条目,则第一个文件将被覆盖。


推荐