【问题标题】:How can I get an array containing all the Keys from a properties file in the correct sequence?如何以正确的顺序从属性文件中获取包含所有键的数组?
【发布时间】:2014-12-17 01:10:52
【问题描述】:

我有以下 .properties 文件:

0.0=值1

2.3=值2

2.45=值3

2.65=值4

2.71=值5

2.87=值6

3.66=值7

我想从这个文件中获取一个包含键的数组,其中包含以下内容:

[0.0, 2.3, 2.45, 2.65, 2.71, 2.87, 3.66]

我试过了:

Properties prop = new Properties();
FileInputStream myInputStream;
myInputStream = new FileInputStream("./test.properties");
prop.load(myInputStream);
myInputStream.close();
Set set = prop.keySet();
Object vetKey[] = set.toArray();

但我的集合不包含键在文件中出现的顺序,

我不知道原因,它们看起来像这样:

[2.71, 3.66, 2.45, 2.3, 0.0, 2.65, 2.87]

如何获得具有正确键序列的数组?就像他们在 .properties:?

【问题讨论】:

  • 你应该知道 set 没有顺序。所以当你把它放在一个集合中时,它的顺序是松散的。您可以使用propertyNames()。没有尝试过,所以如果订单将被保留,我不是用户。
  • 我不明白您为什么要为此使用属性?它不是为此而设计的。它仅用于为您的应用程序保存/存储/检索属性。

标签: java properties


【解决方案1】:

Arrays.sort();Collections.sort();

【讨论】:

    【解决方案2】:

    您是否尝试过使用 prop.keys() 而不是 prop.keySet()?想要它们按照它们在属性文件中出现的顺序和让它们按排序顺序是有区别的。如果你想让它们排序,那么使用 Collections.sort() 对它们进行排序

    【讨论】:

      【解决方案3】:

      改用BufferedReader 怎么样。将每一行读入一个字符串,然后使用string.split 在“=”符号处分割每一行。将 array[0] 从 string.split 添加到您的属性数组。他们会井井有条的。这不是最好的方法,但它会得到你想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-01
        • 2021-06-02
        • 2017-02-01
        • 2020-06-15
        • 2015-05-20
        • 1970-01-01
        相关资源
        最近更新 更多