Also remember that when you serialize an Object (if I am not mistaken),
all the Objects referred to by that Object get serialized too (unless
the references are transient). In addition, there is serialization
overhead (protocol info that is not actually part of your Object but
that is required to deserialize). Your returned size could be misleading
if you have references to, say, some "parent" Object(s) in LDIFData, or
a ton of serialization overhead (unlikely).
Erik
Erik Weber wrote:
public static long getSize(LDIFData data) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(data);
out.close();
return baos.toByteArray().length;
}
catch (Exception e) {
e.printStackTrace();
return -1;
}
}
John Moore wrote:
Navjot Singh wrote:
I use SAX parser to load an LDIF file into memory. Whatsoever data i
read, i fill into an object.
I need to know *the size of LDIFData object* at runtime. How to do
that?
Well the class structure is something like this
public class LDIFData{
ArrayList cards; // collection of Card
String filename;
long lastLoadedTime;
}
public class Card{
String name;
String email
String mobile;
}
Off the top of my head...
Serialize it to a byte array output stream, see how many bytes you have
John
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]