Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/11/2014, 06:59
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Quisiera leer todos los objetos guardados en un archivo .bin

Hola:

Cuando creas un ObjectOuptutStream, java escribe unos bytes de cabecera en él. Luego puedes escribir objetos.

Cuando creas un ObjectInputStream, java intenta leer unos bytes de cabecera, luego puedes leer objetos.

Por ello, es importante crear ObjectOutputStream al escribir y ObjectInputStream al leer de la misma forma, para que las cabeceras se escriban/lean igual. Me explico.

Si creas un ObjectOutputStream para escribir cada objeto (es lo que haces en el metodo setVehiculo()), en el fichero estas escribiendo cabecera de bytes, objeto, cabecera de bytes, objeto, cabecera de bytes, objeto...

Para leer, debes leer igual, crear un ObjectInputStream para cada objeto que quieras leer, de forma que leas cabecera de bytes, objeto, cabecera de bytes, objeto, ... No lo estás haciendo así, en el metodo main() estás creando un único ObjectInputStream e intentando leer todos los objetos, es decir, estás intentando leer cabecera de bytes, objeto, objeto, objeto, ... El resultado es el StreamCorruptedException.

Más detalles en http://www.chuidiang.com/java/ficher...tosFichero.php

Se bueno.
__________________
Apuntes Java
Wiki de Programación