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.
- Inicie sesión o regístrese para enviar comentarios
invalid stream header:
Aquí hay un problema similar
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
, o mejor aun si tienes manera de saber la cantidad de objetos guardados el infaltable for
por
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).
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 .
El stacktrace
Y el stacktrace ni en la enseñanza es bueno ? lo veo en varios libros e incluso en los manuales de oracle.