序列化

来源:互联网 发布:光大证券mac 编辑:程序博客网 时间:2024/05/29 10:28
package IOTEST;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** *序列化的概念 *序列化的步骤 *///Java允许我们在内存中通过定义对象来保存对象状态,但是当JVM停止时对象就无法保存。//如何持久化保存对象状态呢?//Java对象序列化就能够帮助我们实现该功能。在保存对象时把其转换为一组字节,等待需要时将自己组装回之前的对象。//类必须实现Serializable或Externalizable接口才能被序列化//实现Serializable的类中若有不参与序列化的变量可用transient关键字修饰//用static修饰的静态成员变量,不参加序列化过程//对象序列化步骤//创建一个ObjectOutputStream对象//通过ObjectOutputStream对象的writeObject(object)方法输出对象//对象反序列化步骤//创建一个ObjectInputStream//通过ObjectInputStream的readObject()方法读取对象public class ObjectFlow {    public static void main(String[] args)     //将对象序列化后存入文件person.out{        File file = new File("D://a.txt");        try {            ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream(file));            oout.writeObject(p);            oout.close();            //读取文件,反序列化后得到对象            ObjectInputStream oin = new ObjectInputStream(new FileInputStream(file));            Object newPerson = oin.readObject();            oin.close();        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
原创粉丝点击