【发布时间】:2013-12-11 04:30:36
【问题描述】:
当我将字节数组转换为 Inputstream 时,它会给出 NotSerializableException 异常。 (请参考下面的代码)
// return type of myBO.getAttachedFile() is byte[]
InputStream inputStream = new ByteArrayInputStream(myBO.getAttachedFile());
我检查了方法 myBO.getAttachedFile() 的返回,它是序列化的。所以我的问题是为什么在转换为 InputStream 后它不是 SERIALIZE,如下面的代码中所写。 myBO.getAttachedFile() 的返回类型是 byte[]
为了检查 myBO.getAttachedFile() 的序列化,我使用了下面的代码。它没有给出异常
try {
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(myBO.getAttachedFile());
} catch (Exception e) {
logger.debug("========EXCEPTION====== Object Not Serialized");
logger.debug(METHOD_NAME, e);
}
当我检查 inputStream 的序列化时,它会在下面的代码中给出异常
try {
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(inputStream);
} catch (Exception e) {
logger.debug("========EXCEPTION====== Object Not Serialized");
logger.debug(METHOD_NAME, e);
}
【问题讨论】:
-
您发布的代码不能抛出该异常,除非在您未向我们展示的地方存在隐藏的反序列化。例外是
NotSerializableException,不是它在你的标题中所说的。请准确。发布异常、消息和堆栈跟踪。关于序列化输入流的部分开始没有意义,但它无关紧要。 -
您已经编辑了您的问题,但您只解决了小问题。如果没有堆栈跟踪,您将不会得到答案。
标签: java serialization inputstream