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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值