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