Problemas sobre el final de archivo cuando deserializo objetos

Buenas noches, así es me presenta un problema de diseño pues hace lo que quiero.

Tengo un conjunto de objetos que voy a escribir en el archivo pero no se si es la manera más adecuada de manejar la excepción EOFException cuando llegue al fin del archivo, o hay algún metodo de la clase ObjectInputStream que me permita saber cuando llego al final del stream envuelto (FileInputStream en mi caso) porque la mejor manera que pude conseguirme fue cachar la excepción espero sus respuestas y como siempre muchas gracias.

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

invalid stream header:

Imagen de julgo

no tiene

la clase ObjectInputStream no tiene un método para verificar el final del archivo asi que parece que cachar la excepción esta bien , ya solo tendrías cambiar las condicionales del while ya que no sirven para nada  
por   , o mejor aun si tienes manera de saber la cantidad de objetos guardados el infaltable for  

Imagen de ezamudio

available

Puedes preguntarle al   si todavía hay algo más que leer con  , si te da 0 es que ya llegó al final del archivo.

Pero, si el archivo está dañado o te pasan un archivo inválido, se arrojará una excepción distinta cuando quieras leer objetos con el  , debes manejar esa excepción específica.

Cachar Exception no es una buena idea, y menos si lo único que haces es imprimir el mensaje (ni siquiera el stack trace).

Imagen de julgo

pues si available

cierto @ezamudio con el FileInputStream si podría saberse a pesar que comúnmente la excepción ocurrirá una sola ves por cada lectura del archivo .

Imagen de Cid

El stacktrace

Y el stacktrace ni en la enseñanza es bueno ? lo veo en varios libros e incluso en los manuales de oracle.