属性文件在java中具有不同值的相同键

时间:2016-04-13 12:33:35

标签: java properties

我有这样的属性文件。

host=192.168.1.1
port=8060
host=192.168.1.2
port=8070
host=192.168.1.3
port=8080
host=192.168.1.4
port=8090

现在我想要唯一的url,以便将其传递给其他应用程序。 示例

HostOne   : https://192.168.1.1:8060
HostTwo   : https://192.168.1.2:8070
HostThree : https://192.168.1.3:8080
HostFour  : https://192.168.1.4:8090

如何使用Java或任何其他库获取它。请帮忙。

感谢。

EDITED

如果我将这种类型的数据怎么样呢。

host=192.168.1.1,8060
host=192.168.1.1,8060
host=192.168.1.1,8060
host=192.168.1.1,8060

现在有办法解决这个问题。 ?

1 个答案:

答案 0 :(得分:4)

基本上属性文件已损坏。属性文件是一系列键/值对,它们构建在一个映射中,因此它要求键是唯一的。我怀疑如果你现在将它加载到Properties对象中,你将只得到最后一个主机/端口对。

选项:

  • 通过提供唯一键,例如真正的属性文件。

    host.1=192.168.1.1
    port.1=8060
    host.2=192.168.1.2
    port.2=8070
    ...
    
  • 使用其他文件格式(例如JSON)

  • 编写自己的自定义解析器,它可以理解您当前的文件格式,但将其称为“属性文件”,因为它对Java开发人员具有特定含义

我个人可能会选择JSON。例如,您的文件可以表示为:

[
    { "host": "192.168.1.1", "port": 8060 },
    { "host": "192.168.1.2", "port": 8070 },
    { "host": "192.168.1.3", "port": 8080 },
    { "host": "192.168.1.4", "port": 8090 }
]