JavaSE——序列化和反序列化

Posted BU_L

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE——序列化和反序列化相关的知识,希望对你有一定的参考价值。

序列化:

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了更方便的对对象流进行存储和读的操作。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口为一个标识接口,没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。  

 

public class Person implements Seriaizable

ObjectOutputStream oos = new ObjectOutputStream(new FIleOutputStream(FIle file))

oos.writeObject(person)

package xulieh;

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

public class Demo02 {
    public static void main(String[]args){
        //序列化
        Person person = new Person("张三", 20, "火星");
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(new FileOutputStream("D:/person2.dat"));
            oos.writeObject(person);
            oos.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                oos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

 


以上是关于JavaSE——序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE入门学习46:文件传输基础之I/O流(Java序列化)

RestFramework

序列化和反序列化代码

python代码实现二叉树的序列化和反序列化

序列化和反序列化的示例代码

Django REST framework序列化