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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 788
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

** меня **

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

gsmd

images come from files, sounds come from a stream; there's actually a Set of items some of which may have an image attached; an image can't be shared


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

В основном,

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

    private void writeObject(ObjectOutputStream out) throws IOException;

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;

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

yanchenko 15.10.2008 15:35

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

Ответ принят как подходящий

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

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