1

我正在开发一种应用程序实例之间的交换格式,以便用户可以将信息保存到文件并稍后恢复。整个“交换格式”是一个被序列化并写入磁盘的类。

您建议如何在该类中存储图形/声音信息?我想避免只是将文件放入 .jar 中。

4

3 回答 3

3

您可以将资源作为 byte[] 数组存储在类中。使用 ByteArrayInputStream 和 ByteArrayOutputStream,您可以将数组包装为流,并使用它们来存储和检索资源。

于 2008-10-15T13:12:08.163 回答
0

** 我 **

关于你的案子的更多细节怎么样?“最佳”方法通常取决于特定的应用程序/用途。图像/声音是否来自文件?来自流?该类的每个实例是否都应存储单独的图像?还是可以在不同实例之间共享图像?

gsmd

图像来自文件,声音来自流;实际上有一组项目,其中一些可能附有图像;无法共享图像


你尝试过哪些方法?我想使用 Serializable 接口是要走的路。这是有关该主题 的两篇 文章。

基本上,

  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 回答