关于readObject()

東東帥 2005-10-31 05:26:18
我用writeObject()写了一个文件,现在我想用readObject()读出这个文件,可是不知有什么方法能判断读到了文件的末尾,每次读都抛出java.io.EOFException异常。
ObjectInputStream in = new ObjectInputStream( new FileInputStream("D:\\aa.txt"));//aa我用writeObject()写了一个文件
while (条件){//想知道这用一个什么条件能判断文件的结尾
Area mystery = (Area) in.readObject();//此处读到文件尾抛出异常
int areaid = mystery.getAreaID();
String areaname = mystery.toString();
int volt = mystery.getVolt();
try {
String strSQL =
"insert into Area(area_id,area_name,nn_volt) values(?,?,?)";
PreparedStatement pstmtSQL = conOracle.prepareStatement(
strSQL);
pstmtSQL.setInt(1, areaid);
pstmtSQL.setString(2, areaname);
pstmtSQL.setInt(3, volt);
pstmtSQL.executeUpdate();
pstmtSQL.close();
} catch (Exception ex) {
System.err.println(ex);
}
}
in.close();
呵呵 我上csdn费劲 打开网页慢 有时还打不开 所以只有20分能给:(
...全文
440 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
東東帥 2005-11-01
  • 打赏
  • 举报
回复
to ztc16627: ((mystery = (Area) in.readObject())!=null)这个条件不行,因为它是先进行in.readObject()再判断,在in.readObject()时就抛出异常了。

to lijie2049: hehe 你的是一种解决方法,我现在用的正是这种,不过我是想找一种根本的方法来解决这个问题,JDK支持ObjectStream的方法好象太少了。
lijie2049 2005-11-01
  • 打赏
  • 举报
回复
我试了一下楼上的方法好象不行.
我也没搞出什么可行的条件.不过,提供一个其它解决的方法.不一定能满足你的要求:
try{
while(ture){
Area mystery = (Area) in.readObject();
.....
}
}
catch(EOFException eof){
return;//这里就应该就是表明到头了,做到头应该做的事.
}
catch(Exception e){
e.printStackTrace();
}
小弟不才,见笑了
ztc16627 2005-10-31
  • 打赏
  • 举报
回复
Area mystery;
while((mystery = (Area) in.readObject())!=null){
}

这样可以吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧