2012-03-10 11 views
0

Robocodeを使用してパフォーマンスを向上させる(最高のフィットネスレベルを達成する)進化するGAタンクを開発しています。そのために、各タンクの情報を1つのファイルに保存する必要があります。Java設定のようなファイルを作成する

クラスの戦車は、次のようないくつかの変数があります:

  • スピードを
  • 角運動量
  • 私ができるようにする方法をご希望の
  • スキャンレート

ファイアーパワーこれらの変数を "settings.txt"というファイルに保存して、バトル後にこれらの変数を更新できるようにする必要があります。このようなファイルを書き込むための最良の方法だろうと容易に戦いの後の変数値を更新できるようにするにはどう

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

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

:私は、ファイルを希望

は次のようにフォーマットしますか?

多くのありがとうございます。

答えて

0

すべてのデータを1つの大きなファイルにまとめたい場合。おそらく、オブジェクト構造を維持できるので、JSON formatのようなものを使用することをお勧めします。変数、オブジェクト、配列を使用します。

多くのJSONリーダーとライターがあります。でも、いくつかの「公式」はjson.org BIJ発見されるhere

次のようになりますあなたのJSON:

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

あなたは本当にあなたが保存し、ディスクへのプレーンなJavaオブジェクトを取得することができますJavaのSerializationになっているはずです。

本当に独自のカスタムフォーマットを作成したい場合は、自分でパーサーを実装する必要があります。 java.ioFile APIを使用して、文字列をディスクに書き込んだり、ファイルからファイルを読み込んだりすることができます。

あなたが好きなXML形式へのあなたのオブジェクトをシリアル化するため XStreamを使用することができ
+1

これらのオブジェクトを長期間維持する必要がある場合、シリアライゼーションは非常に脆弱です。クラスを後で変更するときに間違っていて、すでに書かれている古いバージョンを読み込むことはできません。 RMI用にデータを送信するのは実際には良いことです。 –

0

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

オブジェクトをXMLで表現する方法を定義することは本当に簡単にその(あなたはXStreamのオブジェクトに注釈やメソッドを使用することができます) 。

関連する問題