潜在的问题是,您正在使用
newObjectOutputStream来写入已使用过before的流
ObjectOutputStream。这些流具有由各自的构造函数编写和读取的标头,因此,如果创建另一个
ObjectOutputStream标头,则将编写一个新的标头,以-猜猜是什么?-0xAC,并且现有的
ObjectInputStream对象此时不希望有其他标头,因此会阻塞。
在@trashgod引用的Java Forums线程中,我应该省略有关“两端的每个对象都重新创建”的部分:这只是浪费。在套接字的整个生命周期内使用一个OOS和OIS,并且不要在套接字上使用任何其他流。
如果您想忘记自己写的东西,请使用
ObjectOutputStream.reset().
并且不要使用任何其他流Readers或
Writers在同一套接字上。对象流API可以处理所有Java基本数据类型和所有Serializable类。



