将属性存储到文本文件时,文本文件中属性的写入顺序与代码执行的顺序相反

when storing properties into a text file, written order of properties in text file is in the reverse order of code execution

我是 Java 的新手,正在尝试学习 class 属性。我想出了下面的代码。但是,当我 运行 代码时,我注意到 random.txt 中存储的三个属性的顺序与代码执行相反。为什么会这样?有人可以启发我吗?在此先感谢您的帮助!

Properties p1 = new Properties();
    try (OutputStream os1 = new FileOutputStream("random.txt")){
        p1.setProperty("1", "one");
        p1.setProperty("2", "two");
        p1.setProperty("3", "three");
        p1.store(os1, "comment");
    } catch(IOException e){
        e.printStackTrace();
    }

Properties class 用于维护值列表,其中键是字符串,值也是字符串。 Properties class 扩展了 Hashtable class。

并且基于散列的集合的迭代顺序在 JDK 中未定义。

但是,您可以通过创建自己的属性子 class 并覆盖 put()setProperty() 方法,以原始顺序从属性文件中提取值。

请注意 Properties 与(扩展)Hashtable 一起使用。

地图本质上是 "unordered"。

如果您想了解更多信息并真正存储有序数据,请查看此linkHow can I write Java Properties in a defined order。这个问题之前已经回答过:)

你能不能在每个setProperty之后调用store,就像上面说的,store使用的数据类型可能是LIFO(后进先出),因此最后设置的是最先保存的。

尝试在每组结束后致电商店 属性!