1

ユーザーが情報をファイルに保存して後で復元できるように、アプリケーションのインスタンス間の一種の交換フォーマットを開発しています。「交換フォーマット」全体は、シリアル化されてディスクに書き込まれる単一のクラスです。

そのクラス内にグラフィック/サウンド情報を保存するにはどうすればよいですか? ファイルを.jarに入れるだけは避けたいです。

4

3 に答える 3

3

リソースを byte[] 配列としてクラスに保存しておくことができます。ByteArrayInputStream と ByteArrayOutputStream を使用すると、配列をストリームとしてラップし、それらを使用してリソースを保存および取得できます。

于 2008-10-15T13:12:08.163 に答える
0

** 自分 **

あなたのケースの詳細はどうですか?「最良の」方法は、通常、特定のアプリケーション/用途によって異なります。画像/音声はファイルから来ていますか? ストリームから?クラスの各インスタンスは個別の画像を保存する必要がありますか? または、異なるインスタンス間でイメージを共有できますか?

gsmd

画像はファイルから来て、音はストリームから来ます。実際には一連のアイテムがあり、その一部には画像が添付されている場合があります。画像は共有できません


どのような方法を試しましたか? Serializable インターフェースを使用するのが道だと思います。このトピックに関する2 つの 記事を次に示します。

基本的、

  1. クラスに Serializable インターフェイスを実装する
  2. ファイルに保存してはならないメンバーを一時的なものとしてマークします (ファイル ハンドル、ソケット接続などのコンテキスト データを含むメンバー)。
  3. 画像とサウンドのクラスが以下を使用してデータを書き込む方法をカスタマイズする必要がありますが、実装する必要があります。

    private void writeObject(ObjectOutputStream out) は IOException をスローします。

    private void readObject(ObjectInputStream in) は、IOException、ClassNotFoundException をスローします。

于 2008-10-15T11:31:53.233 に答える
0

クラス内に好きなようにデータを保存しますが、データのカスタムシリアル化を実装します。シリアライズ可能を参照してください。

于 2008-10-15T11:34:13.620 に答える