我需要读取一个属性文件并用 Java 生成一个Properties 类。我这样做是通过使用:
Properties props = new Properties();
props.load(new FileInputStream(args[0]));
for (Enumeration e = props.propertyNames(); e.hasMoreElements();) {
}
但是,props.propertyName 返回的属性并不是按照原始属性文件的顺序排列的。我知道 Properties 只是老式的、非泛化的哈希表。我正在寻找解决方法。任何想法?谢谢!
示例来自 www.java2s.com应该可以解决您的问题。
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
/**
* <a href="OrderedProperties.java.html"><b><i>View Source</i></b></a>
*
* @author Brian Wing Shun Chan
*
*/
public class OrderedProperties extends Properties {
public OrderedProperties() {
super ();
_names = new Vector();
}
public Enumeration propertyNames() {
return _names.elements();
}
public Object put(Object key, Object value) {
if (_names.contains(key)) {
_names.remove(key);
}
_names.add(key);
return super .put(key, value);
}
public Object remove(Object key) {
_names.remove(key);
return super .remove(key);
}
private Vector _names;
}
您的代码将更改为:
Properties props = new OrderedProperties();
props.load(new FileInputStream(args[0]));
for (Enumeration e = props.propertyNames(); e.hasMoreElements();) {
}