我们知道,我们是通过国通readObject();读取被保存的对象的。我只需要循环读取就可以输出全部的对象了。如下面的代码片段
ObjectInputStream ois;
try {
ois=new ObjectInputStream(new FileInputStream("D:/Program Files/eclipse/workspace/file/seriailzable.txt"));
teacher teach=(teacher)ois.readObject();
while(teach!=null){
System.out.println("老师姓名是"+teach.getName());
System.out.println("密码"+teach.getPassword());
System.out.println("同学是"+teach.getStuName());
teach=(teacher)ois.readObject();
}catch (EOFException e) {
System.out.println("对象遍历完成");
//e.printStackTrace();
}
我们需要注意的是,这里会抛出一个EOFException异常,表示文件读取到结尾,不可去读的空异常。需要添加到catch块中。
本例中的密码是不可被序列化的,不想被序列化,我们可以使用关键字transient,如本例中 private transient String password
本例打印结果为
老师姓名是张老师
密码null
同学是王小芳
老师姓名是王老师
密码null
同学是王小芳
对象遍历完成爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情