Урок 45: Сериализация (часть 1). 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Урок 45: Сериализация (часть 1).



https://www.youtube.com/watch?v=dBcqizwOWLg&list=PLAma_mKffTOSUkXp26rgdnC0PicnmnDak&index=46

 

Создаем Классы

- WriteObject- ReadObject- Person- Файл "people.bin".

 

В Классах WriteObject и ReadObject будет поочерёдно запускать метод main, в зависимости от того, что мы будем делать: записывать в файл или считывать с него.

 

 

ЗАПИСЬ В ФАЙЛ.

 

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class WriteObject {
public static void main(String[] args) {
   Person person1 = new Person (1, "Bob");
   Person person2 = new Person (2, "Mike");

    /*
   Расширение файла "people.bin" можно не указывать.
   Расширение".bin" используется для записи бинарных данных.
    */
  
try {
       // FileOutputStream - для записи ЛЮБЫХ бинарных данных.
      
FileOutputStream fos = new FileOutputStream ("people.bin");

       // ObjectOutputStream - для записи ТОЛЬКО Объектов, состоящих             из байтов.
      
ObjectOutputStream oos = new ObjectOutputStream (fos);

       // Записываем Объекты в файл.
      
oos.writeObject (person1);
       oos.writeObject (person2);

       //!!! ЗАКРЫВАЕМ ПОТОК!!!
      
oos.close ();

   } catch (IOException e) {
       e.printStackTrace ();
   }
}
}

 


import java.io.Serializable;

/*
Чтобы разрешить Java сериализацию Объектов Класса Person,
имплементировать Serializable в class Person (public class Person implements Serializable)
 */
public class Person implements Serializable {
private int id;
private String name;

public Person(int id, String name){
   this. id = id;
   this. name = name;
}

public int getId() {
   return id;
}
public String getName(){
   return name;
}

public String toString(){
   return id + ": " + name;
}
}

 

Вывод в Файл:

 

 

 

ЧТЕНИЕ ИЗ ФАЙЛА.

 

import java.io.*;

public class ReadObject {
public static void main(String[] args) {
   try {
       // FileInputStream - для чтения ЛЮБЫХ бинарных данных.
      
FileInputStream fis = new FileInputStream ("people.bin");
       // ObjectInputStream - для чтения ТОЛЬКО Объектов, состоящих из             байтов.
      
ObjectInputStream ois = new ObjectInputStream (fis);

       // Считываем Объекты из файла.
       // Делаем Даун кастинг (Person).
      
Person person1 = (Person) ois.readObject ();
       Person person2 = (Person) ois.readObject ();
       // Выводим Объекты Класса Person в консоль        // с помощью переопределенного метода toString в Классе Person.
       System. out. println (person1);
       System. out. println (person2);

       //!!! ЗАКРЫВАЕМ ПОТОК!!!
      
ois.close ();

   } catch (IOException e) {
       e.printStackTrace ();
   } catch (ClassNotFoundException e) {
       // Это исключение на случай,
       // если при чтении другим пользователем,
       // у него не окажется Класса Person в проекте.
      
e.printStackTrace ();
   }
}
}

 

 

import java.io.Serializable;

/*
Чтобы разрешить Java сериализацию Объектов Класса Person,
имплементировать Serializable в class Person (public class Person implements Serializable)
 */
public class Person implements Serializable {
private int id;
private String name;

public Person(int id, String name){
   this. id = id;
   this. name = name;
}

public int getId() {
   return id;
}
public String getName(){
   return name;
}

public String toString(){
   return id + ": " + name;
}
}

 

 

Вывод в консоль:

 

1: Bob

2: Mike

 

 



Поделиться:


Последнее изменение этой страницы: 2020-11-11; просмотров: 78; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.4.239 (0.005 с.)