首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectInputStream实例

ObjectInputStream实例
EN

Stack Overflow用户
提问于 2014-04-09 20:18:04
回答 1查看 238关注 0票数 0

我试图使用以下代码从保存的文件中读取数据:

代码语言:javascript
复制
    public void saveOnFile() {
    try {
        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("object.txt"));
        output.writeObject(mediaList);
        output.close();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}

    public void readFromFile() {
    try {
        ObjectInputStream inStream = new ObjectInputStream(new FileInputStream("object.txt"));
        this.mediaList.add( (Media) inStream.readObject());
        inStream.close();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}

但是,我不知道ObjectInputStream是否知道输入了哪些对象。在本例中,对象可以是“电影”或"TVShow“,但它们都是媒体的子类。

我得到以下错误:

代码语言:javascript
复制
java.lang.ClassCastException: java.util.ArrayList cannot be cast to project.Media
at project.MediaHandler.readFromFile(MediaHandler.java:66)
at project.Window.<init>(Window.java:73)
at project.Window.main(Window.java:199)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 20:42:27

您写入ObjectOutputStream的对象称为mediaList,因此我假设这是一个ArrayList<Media>,而不是每个单独的Media对象。在ObjectInputStream上,您正在读取一个对象并将其转换为Media,但我认为您会发现它是一个ArrayList<Media> (或者在将它写入ObjectOutputStream时定义了mediaList )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22973103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档