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

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 时候替换为这个类,那么我们再遍历键的时候就是按照文件里面的顺序来的

上一篇:Spring Mvc 公共Controller 使用拦截器注入请求信息


下一篇:微服务架构演变过程(下) | 带你读《Spring Cloud Alibaba(2019)》之二