加载多个属性文件

tra*_*ega 18 java properties-file

是否可以在Java中堆叠加载的属性?比如我可以这样做:

Properties properties = new Properties();

properties.load(new FileInputStream("file1.properties"));
properties.load(new FileInputStream("file2.properties"));
Run Code Online (Sandbox Code Playgroud)

并从两者访问属性?

Eug*_*sky 32

你可以这样做:

Properties properties = new Properties();

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

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

properties.putAll(properties2);
Run Code Online (Sandbox Code Playgroud)

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

  • 如果file2.properties包含与file1.properties中定义的属性同名的属性,则只存在file2.properties中这些属性的值. (6认同)
  • 你说的是事实,但没有回答帖子发起者的问题。@tskuzzy 的答案实际上是正确的答案。 (2认同)

tsk*_*zzy 8

是属性堆栈.Properties扩展Hashtableload()简单地调用put()每个键值对.

来源的相关代码:

String key = loadConvert(lr.lineBuf, 0, keyLen, convtBuf); 
String value = loadConvert(lr.lineBuf, valueStart, limit - valueStart, convtBuf); 
put(key, value); 
Run Code Online (Sandbox Code Playgroud)

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


Pet*_*ček 5

其实,是。你可以这样做。如果任何属性重叠,则新加载的属性将取代旧的属性。