我有一个巨大的文件,其中包含key = value格式的行。 如果我希望在java中使用Properties类的getProperty()方法获取特定键的值,是否在执行getProperty()操作之前将完整文件加载到内存中?
我已经读过Properties类是一个HashTable实现java。所以我想知道整个属性文件是否加载到HashTable中,甚至是使用Properties Class获取单个属性的值。
答案 0 :(得分:2)
java.util.Properties
不是HashTable
实施,是 HashTable
。即它是基于内存中散列的查找。
从source code,您可以看到getProperty
的实施只需委托给super.get
HashTable.get
:
public String getProperty(String key) {
Object oval = super.get(key);
String sval = (oval instanceof String) ? (String)oval : null;
return ((sval == null) && (defaults != null)) ? defaults.getProperty(key) : sval;
}
load
方法将属性文件(.properties
或XML)读入HashTable
。