Java中从文件中读取ArrayList报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Java中从文件中读取ArrayList报错

蛮大人123 2016-06-13 14:40:08 2080

代码

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)

Java
分享到
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:35:58

    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);
                } 
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题