欢迎来到知了汇智!
联系电话:知了汇智-电话号码 028-62016472 / 13228113191

知了堂带你深入了解Java序列化-知了汇智

知了堂带你深入了解Java序列化

  什么是序列化?

  序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

  为什么需要序列化?

  解决针对对象进行流操作的时候引发的问题?

知了堂带你深入了解Java序列化

  怎么实现序列化?

  序列化的实现非常容易,只需要实现serializable接口;序列化实现的原理在于将对象采用流进行读写,核心类为ObjectInputStream和ObjectOutputStream,采用ObjectOutputStream可以将对象进行序列化,采用OnjectInputStream可以将对象进行反序列化;序列化之后的对象成为字节码文件,可以存在内存中,硬盘中,反序列化之后的对象成为类文件

  序列化实现案例:

  首先我们创建一个实现serializable的Person类:
 class Person implements Serializable{
 
    public String name;
 
    public String address;
 
    public int age;
 
    public Person(String name, String address, int age){
        this.name = name;
        this.address = address;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getAddress() {
        return address;
    }
 
    public void setAddress(String address) {
        this.address = address;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + ''' +
                ", address='" + address + ''' +
                ", age=" + age +
                '}';
    }
}

  接下来我们对person对象进行序列化与反序列化:
public class SerializableTest {
    public static void main(String[] args) {
        try{ 
            //序列化:中间结果存储到磁盘
            ObjectOutputStream objectOutputStream = new 
            ObjectOutputStream(new FileOutputStream("D:\object.txt"));
            Person person = new Person("奥巴马","火星",24);
            objectOutputStream.writeObject(person);
            objectOutputStream.flush();
            objectOutputStream.close();
            //反序列化
            ObjectInputStream objectInputStream = new 
            ObjectInputStream(new FileInputStream("D:\object.txt"));
            Person person1 = (Person) objectInputStream.readObject();
            System.out.println(person1.toString());
        }catch(IOException e){
            e.printStackTrace();
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
    }
}


        版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习

132 2811 3191
预约免费试学
点击咨询
预约试学