代码
public class Data {
private File file=new File("e:"+File.separator+"message.txt");
private ObjectInputStream ois;
private ObjectOutputStream oos;
public ArrayList read() throws FileNotFoundException, IOException{
ArrayList list=new ArrayList();
ois=new ObjectInputStream(new FileInputStream(file));
try {
list=(ArrayList<Message>) ois.readObject();//报错的位置
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public void write(ArrayList<Message> list){
try {
oos=new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(list);
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
ois=new ObjectInputStream(new FileInputStream(file));
这一句返回值可能为空,或者是下一句无法读到东西;强转崩溃;list=(ArrayList<Message>) ois.readObject();
不能这么转换,必须写
list=new ArrayList<Message>();
while((obj=ois.readObject())!=null) {
Message m = (Message)obj;
list.add(m);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。