1

したがって、私の問題には基本的に2つのサブ問題があります。おそらく UTF-8 エンコーディングを使用して、カスタム ファイル タイプを作成したいと考えています。エンコードをUTF-8または適合するものに設定する方法がまだわからない方法で、好みの拡張子のファイルを保存することによってのみ、それを行うことができると思います。
私の拡張子は「.molb」です。

ここでの問題は、球体や円柱などの 3D オブジェクトをそのファイルに書き込む必要があり、ファイルを開くと認識され、何らかの方法でユニバースに追加されることです。
オブジェクトのシリアル化と FileBuffers の使用を提案する記事もありましたが、これを自分の問題に適用する方法を実際に理解するのに役立つ記事はありませんでした。

明確にするために、次の例 を示します。この画像 は、フォームまたは別のファイルに保存する必要があるいくつかのオブジェクト (円柱と球) を示しているため、そのファイルを開くと、オブジェクトは保存された属性 (位置、色、向きなど)。また、私のファイルには、球のxyz位置を格納する配列が含まれます

4

1 に答える 1

3

クラスが実装されているSerializable場合は、それらを非常に簡単にファイルに書き込むことができます。

DataOutputStream os = new DataOutputStream(new FileOutputStream("myfile.molb"));
os.writeObject(sphare);
os.close();

このファイルはバイナリです。エンコーディングを気にする必要はありません。

ただし、XML、JSON、またはその他のテキスト形式を使用してオブジェクトをシリアル化したい場合は、エンコーディングを受け入れる他のコンストラクターを使用して、ライターでラップ ストリームを開きたいと思うでしょうnew OutputStreamWriter(new FileOutputStream("my.txt"), "UTF-8)"。オブジェクトから xml (または json) へのシリアライゼーションを有効にするために、いくつかの注釈 (JAXB や Jakson など) を追加する必要もあります。

于 2012-10-31T21:01:54.847 に答える