所以我试图写出一个对象到一个ByteArray,但由于某种原因,它不写任何东西,我看到的事实是返回值为0,读它会导致一个例外。OutputStream与ByteArrayOutputStream不写
BAoutput = new ByteArrayOutputStream();
Oout = new ObjectOutputStream(BAoutput);
Oout.writeObject(receiver);
其中receiver
是我通过参数获得的对象。 的例外始终是相同的:
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)
任何想法?
大部分代码:(有一对夫妇在它上面的定义,没有什么有趣的真)
try {
BAoutput = new ByteArrayOutputStream();
Oout = new ObjectOutputStream(BAoutput);
BAinput = new ByteArrayInputStream(BAoutput.toByteArray());
Oin = new ObjectInputStream(BAinput);
Oout.writeObject(receiver);
retval = method.invoke(receiver, args);
for (Method curr: postMethods){
curr.setAccessible(true);
if (curr.invoke(receiver).equals(false)){
receiver = Oin.readObject();
throw new PostconditionFailure();
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
Oin.close();
Oout.close();
BAinput.close();
BAoutput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
您是否刷新/关闭输出流? – Synesso 2010-05-28 06:27:23
抛出的实际异常是什么? – 2010-05-28 06:28:10
请添加例外的第一行(例外类型和消息) – 2010-05-28 06:28:37