java反序列化多个对象_反序列化多个Java对象

你好亲爱的同事们,

我有一个Garden类,在其中我可以序列化和反序列化多个Plant类对象。如果想将其分配给mein静态方法中的调用变量,则可以进行序列化,但是不能进行反序列化。

public void searilizePlant(ArrayList _plants) {

try {

FileOutputStream fileOut = new FileOutputStream(fileName);

ObjectOutputStream out = new ObjectOutputStream(fileOut);

for (int i = 0; i < _plants.size(); i++) {

out.writeObject(_plants.get(i));

}

out.close();

fileOut.close();

} catch (IOException ex) {

}

}

反序列化代码:

public ArrayList desearilizePlant() {

ArrayList plants = new ArrayList();

Plant _plant = null;

try {

ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));

Object object = in.readObject();

// _plant = (Plant) object;

// TODO: ITERATE OVER THE WHOLE STREAM

while (object != null) {

plants.add((Plant) object);

object = in.readObject();

}

in.close();

} catch (IOException i) {

return null;

} catch (ClassNotFoundException c) {

System.out.println("Employee class not found");

return null;

}

return plants;

}

我的调用代码:

ArrayList plants = new ArrayList();

plants.add(plant1);

Garden garden = new Garden();

garden.searilizePlant(plants);

// THIS IS THE PROBLEM HERE

ArrayList dp = new ArrayList();

dp = garden.desearilizePlant();

编辑

我有一个空的Pointer异常

@NilsH的解决方案工作正常,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值