Oos.flush();

У вихідний потік виводяться всі нестатичні поля об’єкта, незалежно від прав доступу до них, а також дані про клас цього об’єкта, необхідні для його правильного відновлення при десеріалізації. Байт-коди методів класу не серіалізуються. Якщо в об’єкті присутні посилки на інші об’єкти, то вони теж серіалізуються, а в них можуть бути посилання на інші об’єкти, котрі знову-таки серіалізуються, і отримується ціла множина зв’язаних між собою серіалізованих об’єктів. Метод writeObject() розпізнає два посилання на один об’єкт і виводить його у вихідний потік тільки один раз. До того ж, він розпізнає посилання, замкнуті в кільце, і уникає зациклювання.

Всі класи об’єктів, що входять в таку серіалізовану множину, а також всі їх внутрішні класи, повинні реалізувати інтерфейс serializable, в протилежному випадку буде відкинуте виключення класу NotseriaІizabІeException і процес серіалізації перерветься.

Клас java.awt.Component реалізує інтерфейс Serializable, а це означає, що всі графічні компоненти можна серіалізувати. Не реалізують цей інтерфейс звичайно класи, тісно пов’язані з виконанням програм, наприклад, java.awt.Toolkit. Стан екземплярів таких класів немає рації зберігати або передавати по мережі. Не реалізують інтерфейс Serializable і класи, що містять внутрішні дані Java «для службового користування». Десеріалізація відбувається так же просто, як і серіалізація:

ObjectlnputStream ois = new ObjectInputStream

(new FilelnputStream("myobjects.ser"));

MyClass mcl = (MyClass)ois.readObject();

int[] a = (int[])ois.readObject();

String s = (String)ois.readObject();

Date d = (Date)ois.readObject();

Потрібно тільки додержуватися порядку читання елементів потоку. В лістинзі, поданому нижче, створюється об’єкт класу GregorianCaІendar з поточною датою і часом, серіалізується його у файл date.ser, через три секунди десеріалізується і зрівнюється з поточним часом:

 

import java.io.*;

import java.util.*;








Дата добавления: 2014-12-10; просмотров: 873;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.