You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取Property文件时如何保留插入顺序?

读取Property文件时保留属性插入顺序的方法

嘿,刚好碰到过类似需求!默认的Properties类读取配置文件时不会维护属性的插入顺序,但咱们可以用一个超简单的辅助类搞定——核心就是靠LinkedHashMap(它会记住元素的插入顺序)来替换Properties底层的存储结构,而且完全不影响正常的文件读取操作。

实现步骤

  • 创建一个继承自Properties的自定义类,在构造方法中传入LinkedHashMap作为底层存储:
import java.util.LinkedHashMap;
import java.util.Properties;

public class OrderedProperties extends Properties {
    public OrderedProperties() {
        // 用LinkedHashMap替换默认的哈希表,实现顺序保留
        super(new LinkedHashMap<>());
    }
}
  • 使用这个自定义类读取Property文件,用法和原生Properties完全一致,只是现在属性会严格按照文件中的插入顺序保存:
import java.io.FileInputStream;
import java.io.IOException;

public class PropertyReaderDemo {
    public static void main(String[] args) {
        OrderedProperties orderedProps = new OrderedProperties();
        
        try (FileInputStream fis = new FileInputStream("your-config.properties")) {
            orderedProps.load(fis);
            
            // 遍历输出时会按照文件里的插入顺序展示属性
            orderedProps.forEach((key, value) -> System.out.printf("%s = %s%n", key, value));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

补充说明

这个方案完全兼容原生Properties的所有方法,不需要修改任何现有的读取逻辑,只需要把原来的Properties替换成OrderedProperties即可,而且文件读取操作本身依然正常稳定。

内容的提问来源于stack exchange,提问作者Rahamath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:33:24