读取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
相关产品推荐
相关产品推荐

