我用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分能给:(
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分能给:(
while((mystery = (Area) in.readObject())!=null){
}这样可以吧
我也没搞出什么可行的条件.不过,提供一个其它解决的方法.不一定能满足你的要求:
try{
while(ture){
Area mystery = (Area) in.readObject();
.....
}
}
catch(EOFException eof){
return;//这里就应该就是表明到头了,做到头应该做的事.
}
catch(Exception e){
e.printStackTrace();
}
小弟不才,见笑了