2011-06-20 2 views
1

私のプロジェクトでは、プロトコル(送信されるデータ(最も可能性の高い整数)と送信順)と次のような形式の情報に関する情報を格納する必要があります。
'ID' 'STRING' 'ADDITIONAL INTEGER DATA '
この情報はJavaプログラムによって読み込まれ、処理のためにメモリに保存されますが、このデータを格納する最も賢明な形式は何か分かりません。標準の文字列と整数データに関する最良のファイル形式ですか?

編集:ここにいくつかの追加情報があります:
1)私はこのデータをゲームサーバーで使用します。
2)ゲームサーバーであるため、起動時にこのデータが主に読み込まれて利用されるため、スピードが主な関心事ではありません。
3)メモリ消費しかし、私は最小限に抑えたいと思います。
4)第2のデータ「例」は、特定のゲーム内アイテムの名前、その統計情報および他の整数データを検索するための「辞書」として使用される(したがって、プロトコルを含む最初のデータ情報、各ファイルでは、例えばログインプロトコルのような小さなプロトコルビットのみが記録されます)。
5)はい、データを「人間が編集可能」にしたいと思います。

EDIT 2:ここで私が作った選択肢です:
JSON - プロトコルの説明
CSVのためには - 辞書用

+0

「追加の整数データ」の例を挙げることができますか?それは1つの整数、整数のリスト、整数の指定されたフォーマットまたは何ですか? –

+0

ただ1つの整数。 – Benjamin

答えて

2

量るために来ることができ、多くの要因がある - ここにいるあなたがこれを理解に役立つかもしれないもの:

1)速度/メモリ使用量:データは非常に迅速にロードする必要がある場合、または非常に大きい場合は、独自のバイナリ形式を使用することを検討することをお勧めします。

2)移植性/互換性:#1とのバランスは、カスタムバイナリ形式を読み取らないプログラムでは、他の場所でデータを使用することを検討することです。この場合、あなたの大打撃者はおそらくCSV、dBase、XML、私のお気に入りのJSONになるでしょう。

3)シンプルさ:CSVのような区切り形式は、読みやすく、手書きで編集が容易です。適切なエスケープを使用して二重引用符を使用するか、データに表示されないデリミタを選択します。

これらの要因がどれほど重要か、状況についてさらに詳しい情報を投稿できる場合は、さらに手助けをすることができます。

+1

さらに2つの考慮点があります。データがheirarichal(この場合はそうではないように見えます)で、人間が読み書き可能である必要がありますか?最後にYAML(http://jyaml.sourceforge.net/)をリストに追加することができます。 –

0

どのようにXMLについて、JSONまたはCSV

0

XMLを使用して同様のプロトコル仕様を記述しました。 (利用可能なhere

メッセージ/ネットワークパッケージ/フィールドなどを指定する階層的性質を捕捉するので、それは良い一致だと思います。フィールドの順序はよく定義されています。

私はさらに、XSLTの各メッセージタイプのメソッドを持つメッセージ送受信クラスを生成するコードジェネレータを作成しました。

唯一の欠点は冗長であることです。あなたが本当にシンプルな仕様の構造を持っているなら、私はいくつかの簡単な自家製フォーマットを使用し、あなたが選んだパーサージェネレーターを使ってパーサーを書くことをお勧めします。

0

他の人がここで提案した形式(CSV、XML、JSONなど)に加えて、情報をJavaプロパティファイルに格納することも考えられます。 (java.util.Propertiesクラスを参照してください。)コードはすでにあなたのためにありますので、使いたいプロパティ名(または名前接頭辞)だけです。

Propertiesクラスは、プロパティを単純なXML形式で格納/ロードすることもできます。

関連する問題