Как сериализовать объект на Java: 8 шагов (с изображениями)

Оглавление:

Как сериализовать объект на Java: 8 шагов (с изображениями)
Как сериализовать объект на Java: 8 шагов (с изображениями)

Видео: Как сериализовать объект на Java: 8 шагов (с изображениями)

Видео: Как сериализовать объект на Java: 8 шагов (с изображениями)
Видео: Работа с фигурами в Inkscape | Урок 1 2024, Апрель
Anonim

Когда вы сериализуете объект в Java, вы конвертируете данные в байтовые потоки, которые затем конвертируются обратно в копию исходных данных. Если это звучит сбивающе с толку, подумайте о сериализации в следующих терминах. Вы работаете с документом, а затем сохраняете его на жесткий диск. Вы, так сказать, сериализуете данные, чтобы впоследствии можно было получить эту копию. Сериализация делает передачу данных по сети намного проще и эффективнее.

Перед сериализацией объекта важно понимать основы Java. Если вы использовали языки программирования, такие как Pascal и более старые версии C, вы знаете, что без сериализации объектов программист должен создать отдельный текстовый файл ввода-вывода для хранения и загрузки данных. Сериализация объектов в Java позволяет обойтись без создания этого текстового файла для хранения данных, что экономит время и затраты на программирование. Следующая статья содержит шаги по сериализации объекта в Java. Образец кода в этой статье любезно предоставлен The Java Developers Almanac 1.4.

Шаги

Сериализация объекта в Java, шаг 1
Сериализация объекта в Java, шаг 1

Шаг 1. Откройте объект кодирования Java, который требует сериализации, или создайте его с нуля

Сериализация объекта в Java, шаг 2
Сериализация объекта в Java, шаг 2

Шаг 2. Выберите объект в Java, который вы хотите сериализовать

В этом примере мы назовем этот объект «MyObject».

Сериализация объекта в Java, шаг 3
Сериализация объекта в Java, шаг 3

Шаг 3. Включите сериализацию объектов в Java, заставив класс MyObject реализовать интерфейс java.io. Serialize

Просто добавьте следующую строку кода в начало кода, заменив строку «публичный класс MyObject». Открытый класс MyObject реализует java.io. Serializable

Сериализация объекта в Java, шаг 4
Сериализация объекта в Java, шаг 4

Шаг 4. Теперь ваш объект сериализуем, это означает, что он может быть записан потоком вывода, например:

  • Следующие строки кода показывают, как записать MyObject (или любой сериализуемый объект) в файл или на диск.

    пытаться{

    // Сериализуем объект данных в файл

    ObjectOutputStream out = новый ObjectOutputStream (новый FileOutputStream ("MyObject.ser"));

    out.writeObject (объект);

    out.close ();

    // Сериализуем объект данных в байтовый массив

    ByteArrayOutputStream bos = новый ByteArrayOutputStream ();

    out = новый ObjectOutputStream (bos);

    out.writeObject (объект);

    out.close ();

    // Получаем байты сериализованного объекта

    byte buf = bos.toByteArray ();

    } catch (IOException e) {

    }

Сериализация объекта в Java. Шаг 5
Сериализация объекта в Java. Шаг 5

Шаг 5. Это можно прочитать так:

попробуйте {FileInputStream door = new FileInputStream ("name_of_file.sav"); Считыватель ObjectInputStream = новый ObjectInputStream (дверь); MyObject x = новый MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Сериализация объекта в Java. Шаг 6
Сериализация объекта в Java. Шаг 6
Сериализация объекта в Java. Шаг 7
Сериализация объекта в Java. Шаг 7

Шаг 6. Выполните сериализованный объектный код в программе Java, чтобы убедиться, что он работает эффективно (необязательно)

Запустите файл Java. Jar Шаг 9
Запустите файл Java. Jar Шаг 9

Шаг 7. Сохраните и закройте сериализованный объект в Java

подсказки

  • Усовершенствования сериализации в Java SE Development Kit 6 позволяют использовать ObjectStreamClass для поиска любого метода для обработки любых несериализуемых объектов класса.
  • Чтобы сократить время чтения и записи в больших деревьях объектов, используйте ключевое слово «transient» для переменных экземпляра, которые не требуют сериализации. Это повысит производительность, поскольку вы больше не будете читать и записывать ненужные данные в процессе сериализации.

Предупреждения

  • Java выпускает новую версию своего комплекта разработчика почти ежегодно. Новые версии включают обновления и изменения того, как вы можете сериализовать объект в Java. Поэтому важно отслеживать изменения в используемой вами версии.
  • При сериализации объектов нельзя зашифровать потоки данных. Следовательно, вам придется полагаться на другие приложения или вторичные процессы сетевого транспорта для защиты данных, если это необходимо.
  • В настоящее время нет опции, позволяющей записывать объекты в файл с произвольным доступом. Вместо этого вы можете использовать потоки ввода-вывода байтового массива в качестве заполнителя для чтения и записи объектов. Однако убедитесь, что весь объект находится в потоке байтового массива, иначе процесс завершится ошибкой.

Рекомендуемые: