(转)Java 顺序读取Properties文件

来源:互联网 发布:淘宝客服常用问候语 编辑:程序博客网 时间:2024/06/07 06:43

Java 顺序读取Properties文件


使用java自带的Properties类读取Properties文件是不按存储顺序的,若有按顺序的需要,可以继承Properties类。用LinkedHashMap替换其中的keys集合:

public class Proper extends Properties{    //LinkedHashSet有序,可以保证读取出来顺序不变    private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();      /**     * 读取key集合     */    @Override    public Set<String> stringPropertyNames() {          Set<String> set = new LinkedHashSet<String>();          for (Object key : keys) {              set.add((String) key);          }          return set;      }      @Override      public Set<Object> keySet() {          return keys;      }      /**     * 枚举可以直接进行遍历,但是和iterator一样,遍历过程中不能进行修改删除等操作<br/>     * 若要在遍历过程中进行修改擦除等操作,建议使用stringPropertyNames方法     */    @Override    public synchronized Enumeration<Object> keys() {          return Collections.enumeration(keys);      }      @Override      public synchronized Object put(Object key, Object value) {          keys.add(key);          return super.put(key, value);      }    /**     * 若要移除元素,要重写remove方法     */    @Override    public Object remove(Object o) {        keys.remove(o);        return super.remove(o);    }}

这些代码其实是借鉴别人的博客的,是谁的忘了。但是有一点,最后一个remove开始是没有的,我在使用时发现删除属性会报不知名的错误,思考过后发现是没有重写remove方法。

原创粉丝点击