Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta
>

Archivos Binarios

Objetivo

Utilizar archivos binarios para guardar objetos

Producto a Entregar

Un archivo comprimido con el programa generado en la actividad y el archivo de texto con las preguntas resueltas.

Forma de Trabajo

Equipos

Tiempo estimado

1 hora

Forma de Entrega

Por Blackboard

Recomendaciones

  • Sigue las instrucciones de la actividad y ejercita la lectura crítica.
  • Los archivos binarios nos permiten guardar grandes cantidades de datos de manera muy sencilla.
  • Utiliza la presentación de autoestudio para aprenderte los pasos para leer y guardar archivos binarios.

 

Instrucciones

Paso 1:

Además de entregar el archivo con tu laboratorio debes entregar un archivo con las respuestas a las preguntas que aparecen en negritas.

Descarga el esqueleto de la aplicación. Abre el proyecto en NetBeans, compílalo y córrelo para verificar que todo funcione correctametne. Deberá aparecer una pantalla similar a la siguiente:

Paso 2:

Primero vamos a realizar los cambios necesarios a la clase Person. Recuerda que los cambios que debemos hacer para que una clase pueda ser guardada en archivos binarios es implementar la interfaz Serializable y poner un atributo serialVersionUID.

De esta manera la clase Person deberá quedar de la siguiente forma:

Con hacer eso ya le hemos dicho a Java que la clase Person puede ser guardada en archivos binarios.

  • ¿Qué significa el serialVersionUID?

Paso 3:

Ahora es necesario que obtengamos los datos de la persona en la interfaz gráfica y creemos un objeto de tipo Person que es el que vamos a guardar. Una vez que hayas hecho esto (puedes basarte en el laboratorio de archivos de texto) debes mostrar un diálogo en el que preguntes al usuario en dónde quiere guardar el archivo y por último debemos crear un ObjectOutputStream con el que vamos a guardar a la persona como se ve en el siguiente código (tomando en cuenta que la persona que leiste de las cajas de texto se encuentra en el objeto person y que el archivo que seleccionó el usuario se encuentra en el objeto file).

Recuerda que como estamos leyendo archivos de texto es necesario atrapar las excepciones que podrían ocurrir y mostrar mensajes de erorr útiles para el usuario. Para que NetBeans nos ayude con esto puedes seleccionar estas últimas tres líneas, dar click derecho y seleccionar la opción surround with try-catch.

Una vez que todo funcione guarda un archivo y después ábrelo en algún editor de texto (como notepad) para ver qué fue guardado.

  • ¿Puedes ver algún valor que entiendas?
  • ¿Qué tiene guardado el archivo?
  • ¿Qué crees que representen los caracteres "basura" que tiene el archivo?

Paso 4:

Ya que guardamos nuestro archivo debemos hacer lo necesario para leer el archivo. De la misma manera que en el laboratorio anterior muestra un diálogo de abrir archivo en el que le pregutnes al usuario qué archivo quiere leer. Una vez que lo tengas debes poner el siguiente código para poder leer un objeto del archivo:

Recuerda que debes utilizar un try-catch para atrapar los errores que puedan ocurrir y mostrar mensajes de error útiles para el usuario. Una vez que hayas leido el objeto recuerda utilizar el método setText() de las cajas de texto para mostrar los atributos que leiste al objeto person en las cajas de texto correspondientes.

  • ¿Qué se muestra en las cajas de texto?

Una vez que hayas probado que funcione correctamente guardar un archivo persona.dat con los datos de una persona. Después en el código de la clase Person cambia el campo serialVersionUID al valor 2L y vuelve a correr el programa e intenta abrir un archivo.

  • ¿Qué sucede?
  • ¿Qué datos muestra en la sección de output (hasta abajo en la ventana de NetBeans)?
  • ¿Por qué crees que sucede esto?

Ahora modifica la clase Person para agregar un atributo más lastName de tipo String. Cambia la interfaz gráfica de la siguiente manera y asegúrate de que en el action performed del botón open al abrir la persona se pongan todos los datos incluyendo el apellido.

  • ¿Se puede leer el archivo?
  • ¿Ocurrió algún error?
  • ¿Qué sucede con el apellido?

Guarda otro archivo e intenta leerlo.

  • ¿Se puede guardar el archivo?
  • ¿Se puede leer el archivo?
  • ¿Ocurrió algún error?
  • ¿Qué sucede con el apellido?

Ahora modifica la clase Person para quitar el atributo age. Recuerda quitar los getters y setters y modificar la interfaz gráfica para que no tome en cuenta este atributo.

  • ¿Se puede leer el archivo?
  • ¿Ocurrió algún error?
  • ¿Qué sucede con la edad?

Guarda otro archivo e intenta leerlo

  • ¿Se puede guardar el archivo?
  • ¿Se puede leer el archivo?
  • ¿Ocurrió algún error?
  • ¿Qué sucede con la edad?

Comprime tu carpeta de trabajo y mándala por Blackboard junto con el archivo de texto en el que respondiste las preguntas.

Ayudanos a mejorar este laboratorio:

¿Cuál es tu opinión del laboratorio?

(1 - buena; 5 - mala).

1        2        3        4        5
¿Cómo se puede mejorar?
¿Encontraste un error? ¿Cuál?

 

Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta