我有一点不明白,对以下的程序
public byte[] getByteArrayFromObject(WFEntryContext objOperation)
throws java.io.IOException, java.lang.ClassNotFoundException {
byte[] operation = null; java.io.ByteArrayOutputStream byteOut = new        java.io.ByteArrayOutputStream();
java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(byteOut);
out.writeObject(objOperation);
operation = byteOut.toByteArray();
return operation;
}
这段程序中的operation为什么不是空值呢?
java.io.ByteArrayOutputStream byteOut = new java.io.ByteArrayOutputStream();
这个时候byteOut为空值
java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(byteOut);
out.writeObject(objOperation);
这里out是有数据的
operation = byteOut.toByteArray();
这里的byteOut应该是个空值啊
因为
java.io.ByteArrayOutputStream byteOut = new java.io.ByteArrayOutputStream();
哪位大哥知道这个是为什么啊?

解决方案 »

  1.   

    晕,后面不是有java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(byteOut);
      

  2.   

    你已经通过new java.io.ObjectOutputStream(byteOut),向java.io.ByteArrayOutputStream的缓冲区输入数据了呀。byteOut相当于ObjectOutputStream的接收者呀。所以byteOut当然有数据了。