我很抱歉,因为我已经看到有关此主题的帖子,但似乎没有一个可以解决我的问题。所以我会尽量说得非常具体。当我StreamCorruptedException
尝试打开ObjectInputStream
我的ByteArrayInputStream
我需要将对象 ( X509Certificate
) 输出到 XML 文件。我的序列化代码如下所示:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputSream(bos);
oos.writeObject(x509.getData()); // x509 is a DOM Element
oos.close();
bos.close();
XML 文档似乎很好。我的输入代码如下所示:
// elem is a DOM Element with contents placed in Context
ByteArrayInputStream bis = new ByteArrayInputStream(
elem.getTextContext().getBytes())
ObjectInputStream ois = new ObjectInputStream(bis);
X509Certificate x509 = (X509Certificate) ois.readObject();
ois.close();
bis.close();
我得到的堆栈跟踪主要是通过我自己的代码,而不是 JVM 内部的任何内容,因此很难跟踪。它是这样的:
java.io.StreamCorruptedException: invalid stream header: 5B0A5B0A
at java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:783)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
. my code
. my code
谢谢你的帮助。