对象序列化例子

Student类实现序列化接口

package xuliehua;

import java.io.Serializable;

/**
 * Serializable 空接口 标识接口
 */
public class Student implements Serializable {
    /**
     * 版本号1L
     */
    private static final long serialVersionUID = 8L;
    private int id;
    private String name;
    private String gender;
    private int age;

    public Student() {
    }

    public Student(int id, String name, String gender, int age) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "[id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + "]";
    }

}

TestObjectStream保存序列化的数据到文件student

package xuliehua;

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

public class TestObjectStream {
    public static void main(String[] args) throws IOException {
        /**
         * Student对象序列化输出保存到文件
         * OOS--FOS文件输出流--f8
         * */
        
        Student s = new Student(4,"ant","FM",8);
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("student"));
        out.writeObject(s);
        out.close();
        System.out.println("保存完成");
    }
}

运行结果

保存完成

观察文件内容


对象序列化文件
 �sr �xuliehua.Student       � �I �ageI �idL �gendert �Ljava/lang/String;L �nameq ~ �xp      �t �FMt �ant

Test2ObjectStream实现反序列化

package xuliehua;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class Test2ObjectStream {
    /**
     * 从f5文件读取反序列化数据
     * 反序列化恢复学生对象
     * 
     * OIS--FIS--f5
     * @throws IOException 
     * @throws ClassNotFoundException 
     */
    public static void main(String[] args) throws ClassNotFoundException, IOException {
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("student"));
        Student s = (Student)in.readObject();
        System.out.println(s);
        in.close();
    }
}

运行结果

[id=4, name=ant, gender=FM, age=8]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容