Java 检查ObjectOutputStream是否仍在序列化

Java 检查ObjectOutputStream是否仍在序列化,java,serialization,objectoutputstream,Java,Serialization,Objectoutputstream,我正在开发一个简单的多人游戏,它在大部分情况下都能正常工作,但有时使用ObjectOutput编写我得到的对象时: java.io.IOException:流处于活动状态 当ObjectOutputStream在序列化对象时重置时发生。我想知道是否有某种方法可以在重置之前等待ObjectOutputStream完成序列化,或者是否有其他解决方案来修复此问题 下面是一段出错的代码: try { objectWriter.writeObject(object); ob

我正在开发一个简单的多人游戏,它在大部分情况下都能正常工作,但有时使用ObjectOutput编写我得到的对象时:

java.io.IOException:流处于活动状态

当ObjectOutputStream在序列化对象时重置时发生。我想知道是否有某种方法可以在重置之前等待ObjectOutputStream完成序列化,或者是否有其他解决方案来修复此问题

下面是一段出错的代码:

try {
        objectWriter.writeObject(object);
        objectWriter.flush();
        objectWriter.reset();
    } catch (Exception e) {
        e.printStackTrace();
    }

该代码要么在类的私有writeObject方法中,要么有多个线程使用同一个流


没有办法按照你的头衔去做。您只需确保它不会发生。

您使用线程吗?@immibis是的,在不同的线程上有两个客户端和一个服务器。它们使用相同的流吗?@immibis否,客户端都有自己的ObjectOutputStream。writeObject以前是否在这之前抛出过任何异常?您是否在任何类中重写readObject或writeObject?