Как сделать объектом сериализации

Сериализация объекта преобразования объектов в последовательность байтов так Cam быть записаны на диск или может быть перенесена на сервер. Эта последовательность байтов может быть позднее десериализованы в исходный объект. После десериализации объекта том же состоянии, как это было, когда она была сериализованной

Java предоставляет этот объект через ObjectInput и ObjectOutput интерфейсов. Конкретное осуществление ObjectOutput и OnjectInput интерфейсов содержится в ObjectOutputStream и ObjectInputStream классах соответственно. Эти два интерфейса, имеют следующие методы:

final void writeObject(Object obj) tthrows IOException
final Object readObejct() through IOException, ClassNotFoundException

WriteObject () Метод может быть использован быть использован для написания любой объект в поток, в том числе строк и массивов и ReadObject () может быть использован для чтения любого потока тех пор, пока объект поддерживает интерфейс java.io.Serializable.

Этот код сначала записывается Serializable объекты в файл. А потом прочитал и тот же файл и выводит объект на консоли. При записи в файл объекты преобразуются в байтовых потоков и при чтении этого потока байтов де сериализованной получить объекты в первоначальное состояние.


import java.io.*;



public class SerializableEmployee implements Serializable {

    String name;

    int age;

    double salary;



    SerializableEmployee(String name, int age, double salary) {

        this.name = name;

        this.age = age;

        this.salary = salary;

    }



    public void showDetails() {

        System.out.println("Name   : " + name);

        System.out.println("Age    : " + age);

        System.out.println("Salary : " + salary);

    }

}



class ObjectSerializationDemo {

    void writeData() {

        SerializableEmployee db[] {

                new SerializableEmployee("Tom"251200.25),

                new SerializableEmployee("Dick"221223.25),

                new SerializableEmployee("Harry"251345.25) };

        try {

            FileOutputStream out = new FileOutputStream("c://employee.txt");

            try {

                ObjectOutputStream sout = new ObjectOutputStream(out);

                for (int i = 0; i < db.length; i++) {

                    sout.writeObject(db[i]);

                }

                sout.close();



            catch (Exception e) {

                        e.printStackTrace();

        }

    }

     void readData() {

        try {

            FileInputStream in = new FileInputStream("c://employee.txt");

            try {

                ObjectInputStream sin = new ObjectInputStream(in);

                try {

                    SerializableEmployee se = (SerializableEmployeesin

                            .readObject();

                    se.showDetails();

                    se = (SerializableEmployeesin.readObject();

                    se.showDetails();

                    se = (SerializableEmployeesin.readObject();

                    se.showDetails();



                    sin.close();



                catch (Exception e) {

                        e.printStackTrace();

                }

        }



    public static void main(String[] args) {

        ObjectSerializationDemo impl = new ObjectSerializationDemo();

        impl.writeData();

        impl.readData();



    }



}

Вывод:

Name   : Tom
Age    : 25
Salary : 1200.25
Name   : Dick
Age    : 22
Salary : 1223.25
Name   : Harry
Age    : 25
Salary: 1345.25

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>