当前位置: 技术问答>java相关
关于readObject()的问题?
来源: 互联网 发布时间:2015-09-17
本文导语: 我编了一个类为People实现了对象的序列化,然后创建了三个People的对象,通过writeObject()把它写到db.dat文件中,想再把对象读出的时候出现了一些问题, 代码是这样的: ObjectInputStream in=new ObjectInputStream(new FileInputStream("db...
我编了一个类为People实现了对象的序列化,然后创建了三个People的对象,通过writeObject()把它写到db.dat文件中,想再把对象读出的时候出现了一些问题,
代码是这样的:
ObjectInputStream in=new ObjectInputStream(new FileInputStream("db.dat"));
Object o;
while((o=in.readObject())!=null)
System.out.println((People)o);
出现了错误,好象是说输入流读空了,要怎样作个循环才能把db.dat里面所有的对象都读出来、谢谢!
代码是这样的:
ObjectInputStream in=new ObjectInputStream(new FileInputStream("db.dat"));
Object o;
while((o=in.readObject())!=null)
System.out.println((People)o);
出现了错误,好象是说输入流读空了,要怎样作个循环才能把db.dat里面所有的对象都读出来、谢谢!
|
try{
while((o=in.readObject())!=null)
System.out.println((People)o);
}catch(EOFException e){
System.out.println("finish");
}
while((o=in.readObject())!=null)
System.out.println((People)o);
}catch(EOFException e){
System.out.println("finish");
}
|
在写入的时候,最后应该写入一个null。然后在读出的时候用while((o=in.readObject())!=null)就可以了。
|
一次性读出来就可以了
XXX xx = (XXX)xxx.readObject(sdfsaf)
XXX xx = (XXX)xxx.readObject(sdfsaf)