Як серіалізовать об'єкт в Java

При серіалізациі об`єкта в Java ви конвертуєте дані в потоки байтів, які потім перетворюєте назад в копію вихідних даних. Якщо це звучить дивно, подумайте про серіалізациі у таких висловлюваннях. Ви працюєте над документом, а потім зберігаєте його на жорсткому диску. Ви, якщо можна так висловитися, серіалізуете дані, щоб ви могли отримати цю копію надалі. Серіалізация робить передачу даних в мережах набагато простіше й ефективніше. Важливо, що б ви розібралися з основами Java перед тим, як приступати до серіалізациі об`єкта. Якщо ви використовували мови програмування, такі як Pascal і старі версії C, ви будете знати, що без серіалізациі об`єктів програміст повинен створити окремий текстовий файл вводу / виводу для зберігання та завантаження даних. Серіалізация об`єкта в Java обходить створення цього текстового файлу для зберігання даних, заощаджуючи час і витрати на програмування. Наступна стаття містить кроки, як серіалізовать об`єкт в Java. У цій статті використовується приклад коду розробників Java Almanac 1.4.

Кроки

  1. Як серіалізовать об'єкт в Java

    1

    Відкрийте об`єкт кодування Java, який вимагає серіалізациі або створення з нуля.

  2. Як серіалізовать об'єкт в Java

    2

    Виберіть об`єкт в Java, який ви хочете серіалізовать. У цьому прикладі ми будемо називати цей об`єкт "MyObject."

  3. Як серіалізовать об'єкт в Java

    3

    Увімкніть сериализацию об`єктів в Java, створивши клас MyObject для наслідування класу java.io.Serialize class. Просто додайте наступний рядок коду в початок коду, замінивши рядок "public class MyObject". Рublic class MyObject реалізуетjava.io.Serializable




  4. Як серіалізовать об'єкт в Java

    4

    Тепер ваш об`єкт серіалізуемим, що означає, що він може бути написаний вихідним потоком, як це:
    • Наступні рядки коду ілюструють, як записати MyObject (або будь серіалізуемим об`єкт) у файл або на диск.
      try {
      // Serialize data object to a file
      ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream ("MyObject.ser")) -
      out.writeObject (object) -
      out.close () -

      // Serialize data object to a byte array
      ByteArrayOutputStream bos = new ByteArrayOutputStream () -
      out = new ObjectOutputStream (bos) -
      out.writeObject (object) -
      out.close () -

      // Get the bytes of the serialized object
      byte [] buf = bos.toByteArray () -
      } Catch (IOException e) {
      }

  5. Як серіалізовать об'єкт в Java

    5

    Він зчитується наступним чином:
    try {FileInputStream door = new FileInputStream ("name_of_file.sav") - ObjectInputStream reader = new ObjectInputStream (door) -MyObject x = new MyObject () - x = (MyObject) reader.nextObject () -} catch (IOException e) { e.printStackTrace () -}

    Як серіалізовать об'єкт в Java

  6. Як серіалізовать об'єкт в Java

    6

    Запустіть серіалізовані об`єктний код в програмі Java, щоб переконатися, що вона працює ефективно (не обов`язково).



  7. 7

    Збережіть і закрийте серіалізовані об`єкт в Java.

Поради

  • Удосконалення серіалізациі в Java SE Development Kit 6 дозволяють використовувати метод ObjectStreamClass lookupAny для обробки будь-яких об`єктів несеріалізуемого класу.
  • Для поліпшення зчитування та запису в деревах великих об`єктів, використовуйте "перехідне" ключове слово для змінних прикладу, які не вимагають серіалізациі. Це дозволить збільшити продуктивність в тому, що вам більше не потрібно зчитувати і записувати непотрібні дані в процесі серіалізациі.

Попередження

  • Java випускається з новою версією Developer`s kit майже щорічно. Нові версії включають оновлення та зміни в тому, як ви можете серіалізовать об`єкт в Java. Тому, дуже важливо стежити за змінами у версії, яку ви використовуєте.
  • При серіалізациі об`єктів ви не можете шифрувати потоки даних. Таким чином, вам потрібно покладатися на інші програми або вторинні процеси мережевої передачі для захисту даних, якщо це необхідно.
  • В даний час немає варіанту, який дозволяє записувати об`єкти в файл з довільним доступом. Замість цього, ви можете використовувати Byte Array (масив байтів) вхідних, вихідних потоків як заповнювач, з якого можна зчитувати і записувати об`єкти. Однак, переконайтеся, що весь об`єкт знаходиться в потоці масиву байтів (Byte Array) або ж процес не вдасться.