Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
2 мин
123

Объектная сериализация в Java

Сериализация объектов — это процесс преобразования состояния объекта в байтовый поток, который затем можно сохранить в файл или отправить по сети.

Сериализация объектов — это процесс преобразования состояния объекта в байтовый поток, который затем можно сохранить в файл или отправить по сети. Это может быть полезно, когда необходимо «запомнить» состояние объекта для последующего восстановления.

Давайте представим, что у нас есть объект «Книга», который хранит информацию о названии, авторе и количестве страниц. Этот объект был создан и инициализирован во время выполнения программы. Но теперь нам нужно сохранить эту информацию и восстановить её при следующем запуске программы. Именно для этого используется сериализация.

class Book implements java.io.Serializable {
    String title;
    String author;
    int pageCount;

    public Book(String title, String author, int pageCount) {
        this.title = title;
        this.author = author;
        this.pageCount = pageCount;
    }
}

Чтобы объект был сериализуемым, его класс должен реализовывать интерфейс java.io.Serializable. Этот интерфейс не имеет методов, он служит только маркером, указывающим JVM, что объекты этого класса могут быть сериализованы.

Сериализация объекта происходит следующим образом:

FileOutputStream fileOut = new FileOutputStream("book.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(myBook);
out.close();
fileOut.close();

Здесь myBook — это объект, который мы хотим сериализовать. В результате в файле book.ser будет сохранено состояние объекта myBook.

Десериализация — это процесс восстановления состояния объекта из байтового потока. Он происходит так:

FileInputStream fileIn = new FileInputStream("book.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
Book myBook = (Book) in.readObject();
in.close();
fileIn.close();

Теперь мы получили объект myBook с теми же значениями полей, которые были у него до сериализации.

Таким образом, сериализация объектов позволяет сохранять и восстанавливать состояние объектов, что может быть очень полезно во многих ситуациях.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий