うちの環境じゃ動かないみたいです
java1.4です

dos=new DataOutputStream(oos);
oos.writeInt (12345);
dos.writeUTF ("Hello!");
oos.writeInt (54321);
dos.writeUTF ("Good-bye!");
って事ですよね?

これで、オブジェクト再構築できました?
どうも、ヘッダ情報などを書き込んでいて、
それが乱れるのではないかと推測しているのですが。
つまり、
ObjectOutputStream oos=new ObjectOutputStream(outputStream);
とやった時点でヘッダが生成され
ObjectOutputStream oos2=new ObjectOutputStream(oos);
とやると第二のヘッダが出て、
oos.write...
oos2.write....
oos.write...
とやるとめちゃくちゃになってしまうのではないかと。