java Properties 键的顺序按照文件里的顺序排列-阿里云开发者社区

开发者社区> 开发与运维> 正文

java Properties 键的顺序按照文件里的顺序排列

简介: Properties 在读取文件后,键的顺序并不是我们文件中的顺序。这样的情况,在有些业务要求一定要按照顺序。那么这样就很头大。这里自定义一个Properties 类来实现 package com.yoke.util; import java.io.File; import java.util.*; /** * key的顺序按照文件顺序 * * @author

Properties 在读取文件后,键的顺序并不是我们文件中的顺序。这样的情况,在有些业务要求一定要按照顺序。那么这样就很头大。这里自定义一个Properties 类来实现

package com.yoke.util;

import java.io.File;
import java.util.*;

/**
 * key的顺序按照文件顺序
 *
 * @author jiangzeyin
 * @date 2016-11-15
 */
public class OrderedProperties extends Properties {

    private static final long serialVersionUID = -4627607243846121965L;

    private File file;
    private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();

    public OrderedProperties() {
        // TODO Auto-generated constructor stub
    }

    public OrderedProperties(File file) {
        // TODO Auto-generated constructor stub
        this.file = file;
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public Enumeration<Object> keys() {
        return Collections.enumeration(keys);
    }

    public Object put(Object key, Object value) {
        keys.add(key);
        return super.put(key, value);
    }

    public Set<Object> keySet() {
        return keys;
    }

    public Set<String> stringPropertyNames() {
        Set<String> set = new LinkedHashSet<String>();
        for (Object key : this.keys) {
            set.add((String) key);
        }
        return set;
    }
}

我们再使用 Properties 时候替换为这个类,那么我们再遍历键的时候就是按照文件里面的顺序来的

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章