2013-05-02 66 views
0

我想通过使用套接字通过ObjectOutputStream加载一个对象。ObjectOutputStream抛出java.io.StreamCorruptedException

我在同一台机器上测试。

我收到此错误:

java.io.StreamCorruptedException: invalid type code: 00 
    at java.io.ObjectInputStream.readObject0(Unknown Source) 
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 
    at java.io.ObjectInputStream.readSerialData(Unknown Source) 
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
    at java.io.ObjectInputStream.readObject0(Unknown Source) 
    at java.io.ObjectInputStream.readArray(Unknown Source) 
    at java.io.ObjectInputStream.readObject0(Unknown Source) 
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 
    at java.io.ObjectInputStream.readSerialData(Unknown Source) 
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
    at java.io.ObjectInputStream.readObject0(Unknown Source) 
    at java.io.ObjectInputStream.readObject(Unknown Source) 

我用这个代码来创建的ObjectOutputStream:

InputStream in = new ByteArrayInputStream(bytes); 
ObjectInputStream objectInputStream = new ObjectInputStream(in); 
Object readObject = objectInputStream.readObject(); 

更奇怪的是,有当我通过是没那么大的物体没有probleam 。

我读取的对象的大小(以字节为单位返回probleam)约为:73423字节。

我通过ObjectOutputStream传递一个java.util.Vector。

如果我传递的数量大于5,则会引发上述异常。

我还创建了一个简单的测试(无需通过套接字)以确保Object是可序列化的,它的工作原理没有问题。 NNTraining是我序列化类:

Vector<NNTraining> nn = new Vector<NNTraining>(); 
    ByteArrayOutputStream b = new ByteArrayOutputStream(); 
    ObjectOutputStream o = new ObjectOutputStream(b); 
    o.writeObject(nn); 
    o.close(); 
    ByteArrayInputStream bb = new ByteArrayInputStream(b.toByteArray()); 
    ObjectInputStream oo = new ObjectInputStream(bb); 
    Vector<NNTraining> v2 = (Vector<NNTraining>) oo.readObject(); 
+0

您可以添加包含从套接字读取数据的代码示例。 – 2013-05-02 20:47:09

回答

0

你不需要这一切使用字节数组和ByteArrayInputStreams鬼混在一起;只需将ObjectInputStream直接附加到套接字上,然后每次都要调用readObject()。在发送者处,将ObjectOutputStream直接附加到套接字上,并在每次需要时调用writeObject()。

你得到的问题是因为你没有这样做。

+0

是的,这是这个问题。 – felipe 2013-05-03 16:26:11

相关问题