[英]How can I find out the serialVersionUID of a serialized Java object?
[英]How can I read the size in bytes of a serialized object in Java?
在反序列化之前或之后,是否可以从流中读取序列化对象的总使用大小?
我能找到的唯一方法是再次将其序列化为字节缓冲区,然后查看该缓冲区的总占用大小。 这行得通,但似乎浪费资源。
编辑:我对对象实例加载到内存时使用的空间不感兴趣。 仅序列化的大小(以字节为单位)。
您将无法在反序列化之前确定大小,因为序列化协议不会浪费时间来预先计算输出的大小。 它只是处理对象直到完成。
要在反序列化后读取大小,可以在ObjectInputStream
和基础流之间插入一个CountingInputStream 。
编辑:如果您绝对需要确定大小预序列化,那么我想您可以序列化为ByteArrayOutputStream
,并将结果字节写入输出。 但这将要求发送者和接收者都同意如何处理字节。
序列化的大小是所有字段及其本身的总和。 我假设您已经找到了一种检查对象大小的好方法,因此请检查对象的大小,然后将其添加到所有字段中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.