Java>ObjectOutputStream()、 ObjectInputStream()、 Serializable使用方法,对象字节输出/输入流、序列化、反序列化

ObjectOutputStream()
ObjectInputStream()
Serializable

// serializable class , need implement ‘serialazable interface’
// 需要序列化的类,要实现serialazable接口

import java.io.Serializable;

public class Person implements Serializable {
    
    
	// 当本对象在更改之前已经序列化完成,且在后续使用中更改了本对象,将会出现java.io.InvalidClassException
	// 释放以下代码可以将java.io.InvalidClassException解决
    // static final long serialVersionUID = 10086L;
    private String name ;
    public Integer age;

    // constructor
    public Person() {
    
    
    }

    public Person(String name, Integer age) {
    
    
        this.name = name;
        this.age = age;
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public Integer getAge() {
    
    
        return age;
    }

    public void setAge(Integer age) {
    
    
        this.age = age;
    }
}

// Code Implements
// 代码实现序列化和反序列化

import java.io.*;

public class WriteObjectDome{
    
    
    public static void main(String[] args) throws IOException, ClassNotFoundException {
    
    
        // method_ObjectOutputStream();
        method_ObjectInputStream();
    }

    // Serializable 序列化
    public static void method_ObjectOutputStream() throws IOException{
    
    
        FileOutputStream fileOutputStream = new FileOutputStream("E:\\folder_io_dome\\domeDir03\\Person_1.object");
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        Person p1 = new Person("yuanhao", 18);
        objectOutputStream.writeObject(p1);
        objectOutputStream.flush();
    }

    // Un Serializable 反序列化
    public static void method_ObjectInputStream() throws IOException, ClassNotFoundException {
    
    
        FileInputStream fileInputStream = new FileInputStream("E:\\folder_io_dome\\domeDir03\\Person_1.object");
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Object object_person = objectInputStream.readObject();
        Person p1 = null;
        if (object_person instanceof Person) p1 = (Person)object_person;
        System.out.println("Name is : " + p1.getName() + "  Age is :" + p1.getAge());
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43309893/article/details/116211011