java - 如何以原始顺序读取java中的属性文件

标签 java properties enumeration

<分区>

我需要读取一个属性文件并用 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();) {
}

关于java - 如何以原始顺序读取java中的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3619796/

相关文章:

c++ - 如何在 C++ 中获取 Windows 7 中所有电源方案的名称?

java - 为什么逗号(,)不会导致编译错误?

java - 如何使用java中的split在空行上分割字符串?

php - 检查神奇设置的属性上是否存在属性

java - 读取maven中src/test/resource下包内放置的属性文件

vb.net - VB 模块中的公共(public)属性 - 跨客户端行为

c# - PropertyGrid、DefaultValueAttribute、动态对象和枚举

java eclipse调试错误

java - 如何在开始新 Activity 之前等待确定按钮

java - 使用 Mockito 监视 CompletableFuture 时,spyObj.get 偶尔会失败