【问题标题】:Java objectInputStream back to java classJava objectInputStream 返回到 java 类
【发布时间】:2017-07-17 05:44:21
【问题描述】:

我是java新手,这只是我的学习代码。我有问题。我已将人员数组发送到文件中,

 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
        for (Person person : persons) {
            oos.writeObject(person);
        }
    } catch (IOException ex) {
        Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex); 
    }

现在我只想让两个顶级人员返回新的人员类数组(愚蠢,但我只想学习如何处理文件)并且实际上不知道如何处理。 我试过这样的东西

try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser")))
   {
        Person[] humans = new Person[2];
        humans[0] = new (Person) ois.readObject();
        humans[1] = new (Person) ois.readObject();

   } 
     catch (IOException ex) {
        Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
    }

但它不起作用。有人可以帮忙吗?我认为这只是一些小错误。

【问题讨论】:

  • 准确定义“它不起作用”。你期望会发生什么,以及会发生什么。如果它引发异常,请发布其堆栈跟踪。如果您有编译错误,请发布完整且准确的错误消息(并阅读)。提示:new 用于调用构造函数。
  • 我什至无法编译它,它说 预期
  • 哦,我明白了。它现在可以在没有“新”的情况下工作。我想我必须在从文件插入之前以某种方式创建对象。
  • 我建议你序列化persions集合。
  • 我建议,如果您决定稍后再返回另一个问题,请查看我们的SO Question Checklist 以帮助您提出一个好问题,从而得到一个好的答案。

标签: java file io inputstream


【解决方案1】:

替换

humans[0] = new (Person) ois.readObject();
humans[1] = new (Person) ois.readObject();

humans[0] = (Person) ois.readObject();
humans[1] = (Person) ois.readObject();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多