Лучший способ хранения изображения/звука внутри класса?

StackOverflow https://stackoverflow.com/questions/204388

Вопрос

Я разрабатываю своего рода формат обмена между экземплярами приложения, чтобы пользователь мог сохранять информацию в файл и позже восстанавливать ее.Весь «формат обмена» представляет собой один класс, который сериализуется и записывается на диск.

Как бы вы предложили хранить графическую/звуковую информацию внутри этого класса?Я бы не хотел просто помещать в него файлы в формате .jar.

Это было полезно?

Решение

Вы можете хранить свои ресурсы в классе в виде массивов byte[].Используя ByteArrayInputStream и ByteArrayOutputStream, вы можете обернуть массивы в потоки и использовать их для хранения и извлечения ресурсов.

Другие советы

Храните данные внутри класса так, как вам нравится, но реализуйте собственную сериализацию для данных.Видеть Сериализуемый.

** мне **

как насчет более подробной информации о вашем случае?«Лучший» метод обычно зависит от конкретного применения/использования.изображение/звук поступает из файлов?из ручья?Ожидается ли, что каждый экземпляр класса будет хранить отдельные изображения?Или изображение может быть общим для разных экземпляров?

gsmd

Изображения поступают из файлов, звуки исходят из потока;На самом деле есть набор элементов, некоторые из которых могут иметь прикрепленное изображение;Изображение не может быть разделено


Какие методы вы пробовали?Я думаю, лучше всего использовать интерфейс Serializable.Вот два статьи по теме.

По сути,

  1. реализовать интерфейс Serializable в своем классе
  2. помечать элементы, которые не следует сохранять в файле, как временные (члены, которые содержат контекстные данные, такие как дескрипторы файлов, соединения сокетов и т. д.).
  3. вам необходимо настроить способ записи данных вашими классами изображения и звука, используя, но реализуя:

    Private void writeObject (ObjectOutputStream out) выдает IOException;

    Private void readObject(ObjectInputStream in) выдает IOException, ClassNotFoundException;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top