Java创建类似配置的文件

时间:2012-03-10 15:06:22

标签: java file variables config robocode

我正在使用Robocode来开发GA坦克,这些坦克会不断发展以提供更好的性能(达到最高的健康水平),为了做到这一点,我需要将每个坦克的信息存储在一个文件中。

Tank类有几个变量,例如:

  • 速度
  • 角动量
  • 火力
  • 扫描率

我想要一种方法能够将这些变量保存在名为“settings.txt”的文件中,并且能够在战斗后更新它们。

我希望将文件格式化为:

robot(1):
speed=12
angMomentum=6
firePower=2
scanRate=10

robot(2):
speed=8
angMomentum=4
firePower=3
scanRate=13

写这样的文件的最佳方法是什么,并且能够在每次战斗后轻松更新变量值?

非常感谢。

4 个答案:

答案 0 :(得分:0)

如果您希望将所有数据放在一个大文件中。也许使用像JSON format这样的东西是个好主意,因为你可以维护你的对象结构。使用变量,对象和数组。

有许多JSON读者和作者可用。甚至可以找到一些'官方'bij json.org here

您的JSON可能如下所示:

{
    "tanks":[
        {"id": 1, "speed": 12, "angMomentum": 6, "firePower": 2, "scanRate": 10},
        {"id": 2, "speed": 8, "angMomentum": 4, "firePower": 3, "scanRate": 13}
    ]
}

答案 1 :(得分:0)

您应该真正研究Java Serialization,它允许您将普通Java对象存储和检索到磁盘。

如果确实想要创建自己的自定义格式,则必须自己实现解析器。您可以使用java.ioFile API将字符串写入磁盘或从文件中读取,例如逐行。

答案 2 :(得分:0)

您可以使用XStream将对象序列化为XML格式,如:

<tank>
    <id>1</id>
    <speed>12</speed>
    <angMomentum>6</angMomentum>
    <firePower>2</firePower>
    <scanRate>10</scanRate>
</tank>

很容易定义如何在XML中表示对象(您可以在XStream对象上使用注释或方法)。

答案 3 :(得分:0)

Properties类包含您需要的所有内容:Using Properties to store configuration values.它处理为您读取和写入磁盘,并作为Map用于存储和检索值。不需要序列化,这在长期存储或XML / JSON解析方面非常脆弱。