Hola:
Si has escrito con un ObjectOutputStream, hay un pequeño problema que quizás haga que escribas muchas veces el mismo objeto, aunque en el código estás escribiendo distintos.
Si escribes así
Código:
Dato dato = new Dato();
bucle
dato.setAtributos (atributos);
objectOutputStream.write(dato);
fin bucle
puesto que siempre es la misma instancia de Dato (solo hay un new), ObjectOutputStream es demasiado listo, ve que es la misma instancia y escribe los mismos bytes que en la primera llamada, sin verificar si ha habido cambios o no dentro de la instancia.
Una solucion es hacer un new cada vez
Código:
bucle
Dato dato = new Dato();
dato.setAtributos (atributos);
objectOutputStream.write(dato);
fin bucle
Aquí pudes ver más
detalles sobre este problema con ObjectOutputStream y alguna posible solución más.
Se bueno.