stupid question  will this data stream always always match the data written on line and on or is it possible that we will in a later version change the data we write read and then this can go crazy if that is a possibility i would recommend making the first field you write out an integer  currently to state that this is serialization format in the read code  read the int back and make sure it is if it is not  do not attempt to read the object stream since it is written by a later tool 