对象操作输出流
对象输出流的练习:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class Practice04 {
public static void main(String[] args) throws IOException {
Student s=new Student("zhangsan",23);
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e.text"));
oos.writeObject(s);
oos.close();
}
}
对象操作输入流
对象操作输入流的练习:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class Practice05 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois=new ObjectInputStream( new FileInputStream("e.text"));
Student o = (Student) ois.readObject();//将读取到的object类型强转为student类型
System.out.println(o);
ois.close();
}
}
对象操作输出流和对象操作输入流的细节汇总:
(1)使用序列流将对象写到文件时,需要让javabean类实现serializable接口。
(2)序列化写到文件中的数据是不能修改的,一旦修改就无法再次读回来了。
(3)序列化对象后,修改了javabean类再次序列化会抛出异常。
解决方案:给javabean类添加SerialVersionUID(序列号、版本号)。
(4)如果成员变量不想被序列化,需要给成员变量添加transient关键字修饰。