Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по Java

  Все выпуски  

Уроки по Java


Информационный Канал Subscribe.Ru

Java. Рассылки сайта progs.biz
Выпуск № 40
 
Начало > Java > Основы > Урок 32

Э. Трельсен Модель COM и применение ATL 3.0.
Э. Трельсен. Модель COM и применение ATL 3.0
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 32.

Введение в Java
Урок 32. Сериализация класса

Для того, чтобы экземпляр класса можно было сохранять (например в файл) и потом восстанавливать (например, из файла), класс должен быть сериализуемым. В этом случае сохранение / чтение экземпляра класса будет происходить не поэлементно (что тоже возможно), а целиком.

Вообще же говоря, сериализация - это представление некого объекта в последовательной форме, а десериализация - это восстановление объекта из последовательной формы.

Для того, чтобы класс стал сериализуемым, его надо просто объявить потомком интерфейса Serializable. Методов в этом интерфейсе нет.

Вот сразу пример сериализуемого класса:

import java.io.*;
public class Worker implements Serializable {
    // Данные класса.
    int age=0;
    int yoe=0;
    Worker(int age, int yoe){
        this.age = age;
        this.yoe = yoe;
    }
    
    // Метод main.
    public static void main(String[] args)
throws IOException, ClassNotFoundException {
        // Сериализация экземпляра класса.
        Worker w = new Worker(22, 2);
        ObjectOutputStream os = new ObjectOutputStream(
                new FileOutputStream("1.txt"));
        os.writeObject(w);
        os.close();
        
        // Десериализация экземпляра класса.
        Worker w1 = new Worker(0, 0);
        ObjectInputStream ois = new ObjectInputStream(
                new FileInputStream("1.txt"));
        w1 = (Worker)ois.readObject();
        ois.close();
        System.out.println("age = " + w1.age + ", yoe = " + w1.yoe);
    }
}

Статический метод main, по идее, должен был бы быть в отдельном классе. Мы поместили его в этот же класс для упрощения. В этом методе мы сериализуем в файл 1.txt экземпляр нашего класса (со значениями полей 22 и 2) и потом десериализуем данные из этого файла в другой экземпляр этого же класса Worker. Результат будет вполне ожидаемым - значения полей в новом экземпляре класса будут такие же - 22 и 2.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.javalessons
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное