我正在使用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
写这样的文件的最佳方法是什么,并且能够在每次战斗后轻松更新变量值?
非常感谢。
答案 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.io
和File
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解析方面非常脆弱。