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

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

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

Ответы [ 3 ]

3 голосов
/ 15 октября 2008

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

0 голосов
/ 15 октября 2008

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

0 голосов
/ 15 октября 2008

** меня **

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

GSMD

изображения приходят из файлов, приходят звуки из ручья; есть на самом деле набор предметов, некоторые из которых могут иметь изображение прикреплено; изображение не может быть Общий


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

В основном,

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

    private void writeObject (ObjectOutputStream out) выбрасывает IOException;

    private void readObject (ObjectInputStream in) генерирует IOException, ClassNotFoundException;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...