对象的序列化的目标是将对象保存到磁盘中,或者在网络中传输。对象序列化机制允许把内存的java对象转换层与平台无关的二进制流。
如果某个对象要进行序列化,则必须继承Serializable或Externalizable接口,一旦继承了这两个接口,此类的对象就是可序列化,并且每个对象在java序列化机制中至会序列化一次;在某个对象中引用了另外一个类的对象,则该类的对象也会被序列化,所以必须保证该类也是可序列化的类,但是如果想把一个类中的某个字段不被序列化,可以在字段声明是加关键字transient
基本步骤
1.创建一个ObjectOutputStream处理流
2.调其方法writeObject()输出可序列化对象
try { ObjectOutputStream obj = new ObjectOutputStream( new FileOutputStream("1.txt")); Pserson pe=new Pserson("xiong", 23); obj.writeObject(pe); } catch (Exception e) { e.printStackTrace(); }
如果需要进行恢复Java对象,则需要进行反序列化;在反序列化时,必须按写入时的顺序来读取
基本步骤:
1.创建一个ObectInputStream处理流
2.调用其方法readObject()读取流中的对象
ObjectInputStream obj = new ObjectInputStream(new FileInputStream( "1.txt")); Pserson pe = (Pserson) obj.readObject(); System.out.println("name:" + pe.getName() + " age:" + pe.getAge());