2017-03-21 3 views
1

現在、Javaゲームを作成中で、データをファイルに保存する必要があります。私はDataInputStreamDataOutputStreamを使ってファイルの読み書きを行っています。ただし、書き込む必要のあるデータのほとんどはプリミティブ型ですが、ファイルに保存する必要がある列挙もあります。 DataStreamsを使用してファイルにenumを読み書きする方法はありますか?DataOutputStreamを使用してファイルに列挙する

答えて

1

単にwriteUTF(String str)メソッドを使用してください。そして、列挙自体を書くのではなく、その文字列表現を書いてください。 enumオブジェクトのname()メソッドを呼び出すなどして、

もちろん、これらの文字列を列挙型定数に再度変換するには、「読み込み」部分を少しコーディングする必要があります。しかし、それは正確にあなたのエネルギーを費やしたいところです。

醜い真実は:実際にはJavaの列挙とシリアライズ厄介なトピック;それはあなたが注意を払わない場合、非常に難しいバージョンの競合を導入するので。

意味:ほとんどの人が使用する「通常の」方法です。「通常の」オブジェクトのシリアル化を行います。バイトストリームを作成する。これらのバイトをDataOutputStreamに書き込みます。しかし、その作業を行うためには、enumクラスファイルは両端で一致する必要があります。そうでない場合は、Java直列化フレームワークの例外が深刻になります。それはハードに対処することができます。

ストーリーが短いので、列挙型を直接シリアル化しないでください。代わりに文字列を送信してください。

+0

"name()"または "toString()"を意味するかどうかを明確にしてください –

+0

どれくらいの時間を費やしてもかまいません。しかし、はい、name()はうまく動作します。私は答えを更新しました。 – GhostCat

関連する問題