S.start();

t.start(); }

VI. Серіалізація об’єктів

Методи класів ObjectlnputStream і ObjectOutputStream дозволяють прочитати із вхідного байтового потоку або записати у вихідний байтовий потік дані складних типів — об’єкти, масиви, рядки — подібно тому, як методи класів Datainputstream і DataOutputstream, що читають і записують дані простих типів. Схожість підсилюється тим, що клас Objectxxx містить методи як для читання, так і запису простих типів. Між іншим, ці методи призначені не для використання в програмах, а для запису-читання полів об’єктів і елементів масивів.

Процес запису об’єкта у вихідний потік отримав назву серіалізації(serialization), а читання об’єкта із вхідного потоку і відновлення його в оперативній пам’яті — десеріалізації(deserialization).

Серіалізація об’єкта порушує його безпеку, оскільки будь-який процес може серіалізувати об’єкт в масив, переписати деякі елементи масиву, представляючі private-поля об’єкта, забезпечивши собі, наприклад, доступ до секретного файлу, а потім десеріалізувати об’єкт із зміненими полями і здійснювати з ним недопустимі дії.

Тому серіалізувати можна не кожний об’єкт, а тільки той, котрий реалізує інтерфейс serializable. Цей інтерфейс не містить ні полів, ні методів. Реалізувати в ньому нема чого. По суті запис:

 

class A implements SeriaiizabІe{...}

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

 

MyClass me = new MyClass("abc", -12, 5.67e-5);

int[] arr = {10, 20, 30};

ObjectOutputStream oos = new ObjectOutputStream(

new FileOutputStream("myobjects.ser")) ;








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


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

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

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

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