1、序列化: 简单说就是为了保存在内存中的各种对象的状态 ,并且可以把保存的对象状态再读出来
虽然你可以用你自己的各种各样的方法来保存对象状态,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化
2、序列化使用的场景:
A.当你想把的内存中的对象状态保存到文件中或数据库中时;
B.当你想用套接字在网络上传送对象的时候;
C.当你想通过RMI传输对象的时候;
序列化对象如下:
Student zhangsan = new Student();
zhangsan.setAge(18);
zhangsan.setSex(male);
zhangsan.setHeight(178);
实例化过程代码:
FileOutputStream fos= new FileOutputStream("student.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
os.writeObject(student);
当通过上面的代码序列化之后,Studeng对象zhangsan的实例变量值(18,male,178)都被保存到student.ser文件中,这样以后又可以把它从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对 象。
3、实现序列化保存到文件的一般步骤
//1.创建个Fileoutputsteam
FileOutputStream fos new FileOutputStream("student.ser");
//2.创建个objiectoutputstream
ObjectOutputStream oos new ObjectOutputStream(fos );
//3.写入特定类的对象, 用方法writeobjiect()
os.writeObject(Object1);
os.writeObject(Object2);
os.writeObject(Object3);
//4.关闭流
os.close(); |