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

时间:2021-09-06 09:05:40

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