Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

24
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación

Transcript of Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Page 1: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

:: Prof. Yeniffer Peña

Pro

gra

mació

n I

Interface Gráfica de UsuarioInterface Gráfica de Usuario

Presentación

Page 2: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I El almacenamiento de datos en variables y en arreglos es

temporal; al terminar un programa todos estos datos se pierden.

Muchas aplicaciones requieren escribir o leer información de un dispositivo de almacenamiento auxiliar. Tal información se almacena en estos dispositivos en la forma de un archivo de datos.

Por tanto, los archivos de datos nos permiten almacenar información de modo permanente y acceder y alterar la misma cuando sea necesario.

.

Archivos de Datos

Page 3: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I La información almacenada en un archivo pueden ser

datos byte o caracteres (texto), y pueden ser leídos en la misma forma.

Java cuenta aproximadamente con 20 clases para el acceso a archivos, cada una con su propio conjunto específico de métodos.

Además se pueden acceder los datos con acceso de flujo ó secuencial y también del modo aleatorio.

Archivos de Datos

Page 4: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Comenzaremos por estudiar los archivos de texto con

acceso de flujo, esto significa que al leer un archivo, todo lo que puede hacerse es leer el siguiente elemento. Si, por ejemplo, quisiéramos examinar el último elemento, tendríamos que leer cada uno de los elementos en turno, hasta llegar al elemento requerido.

Las clases de flujo están organizadas de la siguiente forma:

Lectura Escritura

BufferedReader PrintWriter

FileReader BufferedWriter

FileWriter

Archivos de Datos

Page 5: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Para procesar archivos se utilizan las clases

BufferedReader y PrintWriter para leer y escribir líneas de texto.

Escribir un archivo de texto requiere el uso apropiado de clases para crear el flujo de salida y llamar a los métodos para escribir los datos.

La clase FileWriter representa un archivo texto de salida.

La clase PrintWriter ofrece los métodos print y println similares a los de SystemSystem.

Archivos de Datos

Page 6: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I La clase FileReader representa un archivo de entrada

que contiene caracteres. Su constructor inicializa la relación entre el programa y el archivo, abriendo un stream (flujo) a partir del cual se leerán los datos.

Después de utilizar un archivo es muy recomendable que se cierre, ya que de lo contrario no se garantiza que los datos se guarden satisfactoriamente.

Archivos de Datos

Page 7: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejemplo que genera un archivo denominado prueba.dat con números aleatorios.

Page 8: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejecución del ejemplo anterior.

Page 9: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejemplo que lee del archivo prueba.dat creado anteriormente.

Page 10: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejecución del ejemplo anterior

Page 11: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Estas mismas clases (FileReader y BufferedReader) se pueden utilizar para manejo de objetos. Por ejemplo considere las siguientes clases:

Archivos de Datos

Page 12: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Page 13: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejecución del ejemplo anterior

Page 14: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Page 15: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Serialización de Objetos:

Un objeto se serializa transformándolo en una secuencia de bytes que representan al objeto. Posteriormente esta información puede restablecerse. Una vez serializado el objeto puede almacenarse en un archivo o transmitirse por la red.

Un objeto que desea serializarse debe tener la interface Serializable, que sirve como bandera al compilador.

Para serializar un objeto se invoca al método writeObject de ObjectOutputStream. Para deserializar un objeto invoca al método readObject de ObjetInputStream.

Archivos de Datos

Page 16: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Serialización de Objetos:

Por ejemplo, suponga la clase Auto implementada como serializable y que se desea almacenar en un archivo. Para hacer esto, debe crearse un FileOutputStream y envolverlo en un ObjectOutputStream:

FileOutputStream salArch = new FileOutputStrem ("info.dat");ObjectOutputStream salStream = new ObjectOutputStream (salArch);

para serializar el objeto se invoca al método writeObject:

salStream.writeObject (miAuto);

Archivos de Datos

Page 17: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Serialización de Objetos:

Para invertir el proceso, primero se crea un flujo de entrada FileInputStreamflujo que se envuelve en un ObjectInputStream:

FileInputStream entArch = new FileInputStream ("info.dat");ObjectInputStream entStream = new ObjectInputStream (entArch);

para leer y deserializar el objeto:

Auto c = (Auto) entStream.readObject ();

El método readObject regresa una referencia a un Object, por lo que debe de realizarse un casting a la clase apropiada.

Archivos de Datos

Page 18: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I Serialización de Objetos:

Ejemplo: Considere la serialización de la clase Auto para guardar en un archivo objetos de tipo Auto, esto lo hace la clase EscribeArchivoAutos y para leer del mismo archivo objetos de tipo Auto se utiliza la clase LeeArchivoAutos.

Archivos de Datos

Page 19: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Page 20: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Page 21: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejecución del ejemplo anterior

Page 22: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Page 23: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

Archivos de Datos

Ejecución del ejemplo anterior

Page 24: Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.

Pro

gra

mació

n I

:: Prof. Yeniffer Peña

Pro

gra

mació

n I

Programación Orientada a ObjetosProgramación Orientada a Objetos

Finalización