It's quite likely that serialization doesn't support appending to an existing file.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Serialization adds a header and I think also a header to the file. Now the thing is, your reading code expects only one single footer. It encounters multiple though, one before each object.
It should still be possible to read it if and only if you have written only a single object at a time, by creating a new ObjectInputStream for every object. Since the backing FileInputStream will progress, it should skip to the next serialization block each time.
There is also another problem in your code. Unlike the InputStream's read methods, there is no return value for identifying the end of the stream. If there are no more object, null is NOT returned but an exception is thrown - java.io.EOFException I believe.