项目测试过程中需要用到properties,但是load的时候不是顺序的,会造成数据遍历时候的一些错误
代码:
package cn.caiqr.caipiao.award;
import java.util.*;
/**
* Created by tangxuelong on 16-11-15.
*/
public class OrderedProperties extends Properties {
private static final long serialVersionUID = -4627607243846121965L;
private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();
public Enumeration<Object> keys() {
return Collections.<Object> 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;
}
}
使用方式
InputStream input = new FileInputStream(AwardDistributeConstant.FILE_PATH_SAME3SINGLE_KUAI3);
Properties props = new OrderedProperties();
props.load(input);
Set<Object> keys = props.keySet();