在Java中监视ObjectOutputStream

在Java中监视ObjectOutputStream,java,swing,Java,Swing,我正在使用ObjectOutputStream使用我的Swing应用程序将一个大对象(可能是一个映射)发送到服务器,是否还可以像文件上载一样监视发送的百分比等。您可以将对象序列化为字节数组,如下图所示(不完整,信用证): 然后将字节发送到服务器,每次发送一段。通过这种方式,您将始终知道发送总数的百分比。另一方面,你必须重建你的物体。是的 您可以创建自己的实现,并将其包装到您的应用程序中。输出流是这样的,您的实现可以计算已发送的字节数,并使用异步更新UI 使用必须发送的对象的大小初始化Output

我正在使用ObjectOutputStream使用我的Swing应用程序将一个大对象(可能是一个映射)发送到服务器,是否还可以像文件上载一样监视发送的百分比等。

您可以将对象序列化为字节数组,如下图所示(不完整,信用证):

然后将字节发送到服务器,每次发送一段。通过这种方式,您将始终知道发送总数的百分比。另一方面,你必须重建你的物体。

是的

您可以创建自己的实现,并将其包装到您的应用程序中。输出流是这样的,您的实现可以计算已发送的字节数,并使用异步更新UI


使用必须发送的对象的大小初始化OutputStream的实现,以了解需要发送多少字节。看看danben的答案。

您是使用OutputStreams还是通道连接到服务器?我使用outputstream连接到服务器
// Serialize to a byte array
ByteArrayOutputStream bos = new ByteArrayOutputStream();
out = new ObjectOutputStream(bos);
out.writeObject(object); 
out.close(); 

// Get the bytes of the serialized object
byte[] buf = bos.toByteArray();