在类中存储图像/声音的最佳方式?
Posted
技术标签:
【中文标题】在类中存储图像/声音的最佳方式?【英文标题】:The best way of storing an image/sound inside a class? 【发布时间】:2008-10-15 11:26:59 【问题描述】:我正在开发一种应用程序实例之间的交换格式,以便用户可以将信息保存到文件并在以后恢复它。整个“交换格式”是一个被序列化并写入磁盘的类。
您建议如何在该类中存储图形/声音信息?我想避免只将文件放入 .jar 中。
【问题讨论】:
【参考方案1】:您可以将资源作为 byte[] 数组存储在类中。使用 ByteArrayInputStream 和 ByteArrayOutputStream,您可以将数组包装为流,并使用它们来存储和检索资源。
【讨论】:
【参考方案2】:在类中以任何您喜欢的方式存储数据,但为数据实现自定义序列化。见Serializable。
【讨论】:
【参考方案3】:**我**
您的案件的更多细节如何? “最佳”方法通常取决于特定的应用程序/用途。图像/声音是否来自文件?来自流?该类的每个实例是否都应存储单独的图像?还是可以在不同实例之间共享图像?
gsmd
图像来自文件,声音来自 从溪流中;实际上有一个 Set 其中一些可能有 附上图片;图像不能 共享
你尝试过哪些方法? 我想使用 Serializable 接口是要走的路。这是关于该主题的twoarticles。
基本上,
-
在您的类中实现 Serializable 接口
将不应保存在文件中的成员标记为瞬态(包含文件句柄、套接字连接等上下文数据的成员)。
您必须自定义图像和声音类如何使用写入数据,但要实现:
private void writeObject(ObjectOutputStream out) 抛出 IOException;
private void readObject(ObjectInputStream in) 抛出 IOException, ClassNotFoundException;
【讨论】:
图像来自文件,声音来自流;实际上有一组项目,其中一些可能附有图像;无法共享图片。以上是关于在类中存储图像/声音的最佳方式?的主要内容,如果未能解决你的问题,请参考以下文章