APO2 - Presentacion nivel 8
-
Upload
mario-jose-villamizar-cano -
Category
Education
-
view
3.157 -
download
1
description
Transcript of APO2 - Presentacion nivel 8
ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2)
NIVEL 8
Mario José Villamizar Cano
Oficina ML-637
http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php
Grupo de Tecnologías de Información y Comunicación (COMIT)
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes, Bogotá D.C., Colombia
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 8
Caso de estudio 1 – Explorados de archivos
Expresiones condicionales
Manipulación básica de archivos
Lectura de archivos
Manipulación de cadenas de caracteres
Escritura de archivos
Pruebas unitarias con archivos
Componente JTextArea
NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN
NIVEL 8
Caso de estudio 2 – Tienda virtual de discos
Diseño e implementación de excepciones
Reportes y otras salidas en archivos
Importación de datos desde archivos
Construcción de pruebas unitarias
Persistencia simple por serialización
Controlar la salida de un programa
Manejo de logs
Componente JComboBox
Uso del depurador de Eclipse
NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN
NIVEL 8
CASOS DE ESTUDIO
Caso de estudio 1: Explorados de archivos
NIVEL 8
CASOS DE ESTUDIO
Caso de estudio 2: Tienda virtual de discos
NIVEL 8
HOJAS DE TRABAJO
Hoja de trabajo 1: Campeonato de fórmula 1
NIVEL 8
HOJAS DE TRABAJO
Hoja de trabajo 2: Mundial de fútbol
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Interfaz Gráfica
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Modelo del Mundo
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Modelo de la Interfaz
NIVEL 8
CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS
Modelo de las Pruebas
NIVEL 8
EXPRESIONES CONDICIONALES EN JAVA
NIVEL 8
EXPRESIONES CONDICIONALES EN JAVA
NIVEL 8
MANIPULACIÓN BÁSICA DE ARCHIVOS
NIVEL 8
MANIPULACIÓN BÁSICA DE ARCHIVOS
Para representar un archivo o directorio en Java se utiliza la clase File.
Métodos de la clase File:
length() getAbsolutePath( ) getName( )
lastModified( ) createNewFile( ) listFiles( )
isDirectory( ) isFile( )
Constante: File.separator
NIVEL 8
MANIPULACIÓN BÁSICA DE ARCHIVOS
NIVEL 8
LECTURA DE ARCHIVOS
Se utilizan las clases FileReader y BufferedReader:
FileReader: Lee el archivo como una fuente de caracteres.
BufferedReader: Lee el archivo como una secuencia de caracteres
(String).
NIVEL 8
LECTURA DE ARCHIVOS
NIVEL 8
Clase Método Excepción Causa
File File(nombreCompleto) NullPointerException El nombre completo del archivo o directorio es nulo
File File(directorio, nombreCorto)
NullPointerException El nombre corto del archivo o directorio es nulo
File createNewFile( ) IOException Error al crear el archivo
FileReader FileReader (File) FileNotFoundException No existe el archivo
FileReader close( ) IOException Error al cerrar la fuente de caracteres
BufferedReader readLine( )
IOException Error al leer el archivo
BufferedReader close( ) IOException Error al cerrar la fuente de cadenas
LECTURA DE ARCHIVOS
NIVEL 8
Clase Método Excepción Causa
File delete() SecurityException Problemas debido a permisos del archivo o directorio
File mkdir() SecurityException Problemas debido a permisos del directorio
File mkdirs() SecurityException Problemas debido a permisos del directorio
File exists() SecurityException Problemas debido a permisos del archivo o directorio
FileReader renameTo( File) SecurityException Problemas debido a permisos del archivo o directorio
BufferedReader setReadOnly( ) SecurityException Problemas debido a permisos del archivo o directorio
MANIPULACIÓN DE CADENAS DE CARACTERES
Métodos de la clase String:
trim( )
toLowerCase()
toUpperCase()
indexOf( caracter )
lastIndexOf( caracter )
NIVEL 8
MANIPULACIÓN DE CADENAS DE CARACTERES
Métodos de la clase String:
subString( inicio, fin ). IndexOutOfBoundException.
La posición de inicio se incluye.
La posición de fin se excluye.
subString( inicio ). IndexOutOfBoundException.
startsWith( prefijo)
endsWith( sufijo )
split( separador )
replace( car1, car2 )
replace( cadena1, cadena2 )
NIVEL 8
MANIPULACIÓN DE CADENAS DE CARACTERES
Ejemplo de la Clase Directorio:
NIVEL 8
ESCRITURA DE ARCHIVOS
Se utilizan las clases PrintWriter :
Los métodos print( cadena ) y flush( ) también pueden ser utilizados.
NIVEL 8
ESCRITURA DE ARCHIVOS
Ejemplo de uso del PrintWriter :
NIVEL 8
COMPONENTE JTextArea
NIVEL 8
PREGUNTAS
NIVEL 8
HOJA DE TRABAJO
NIVEL 8
PRUEBAS UNITARIAS CON ARCHIVOS
Estas pruebas requieren de un escenario físico, ya que hay que crear
archivos y directorios:
NIVEL 8
PRUEBAS UNITARIAS CON ARCHIVOS
Estas pruebas requieren de un escenario físico, ya que hay que crear
archivos y directorios:
NIVEL 8
PRUEBAS UNITARIAS CON ARCHIVOS
Construcción de un escenario de pruebas:
NIVEL 8
PRUEBAS UNITARIAS CON ARCHIVOS
Creación de una prueba:
NIVEL 8
PRUEBAS UNITARIAS CON ARCHIVOS
Creación de una prueba:
NIVEL 8
CASOS DE ESTUDIO
Caso de estudio 2: Tienda virtual de discos
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Modelo del Mundo
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Modelo de las Pruebas
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Requerimientos funcionales.
NIVEL 8
CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS
Requerimientos NO funcionales.
NIVEL 8
DISEÑO E IMPLEMENTACIÓN DE LAS EXCEPCIONES
En el programa se deben poder manejar tres nuevo tipos de
excepciones.
ElementoExisteException:
En caso de que ya exista un disco en la tienda con ese nombre.
En caso de que ya exista en el disco una canción con ese nombre.
Interesa:
Nombre del disco o canción que se desea agregar.
ArchivoVentaException:
El formato del archivo de pedidos es inválido.
Error de lectura del archivo con el pedido de canciones.
Interesa:
Causa del error.
Número de canciones que pudieron ser vendidas.
NIVEL 8
DISEÑO E IMPLEMENTACIÓN DE LAS EXCEPCIONES
En el programa se deben poder manejar tres nuevo tipos de
excepciones.
PersistenciaException:
Error al leer o escribir el archivo con la información del estado del
modelo del mundo.
Interesa:
Causa del error.
NIVEL 8
DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR
EXCEPCIONES
NIVEL 8
DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR
EXCEPCIONES
NIVEL 8
DECLARACIÓN DE LA NUEVAS CLASES PARA MANEJAR
EXCEPCIONES
NIVEL 8
COMO LANZAR VARIOS TIPOS DE EXCEPCIONES
NIVEL 8
COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
COMO LANZAR VARIOS TIPOS DE EXCEPCIONES
NIVEL 8
COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
REPORTES Y OTRAS SALIDAS EN ARCHIVOS
NIVEL 8
IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8
El pedido del cliente está en un archivo, cuyo formato se ilustra en la
siguiente figura.
IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8
IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8
IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8
IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8
CASOS DE PRUEBA
NIVEL 8
Las pruebas regularmente están enfocadas en verificar que las
nuevas excepciones se lanzan adecuadamente.
PERSISTENCIA SIMPLE POR SERIALIZACIÓN
NIVEL 8
Sirve para guardar objetos en un archivo.
PERSISTENCIA SIMPLE POR SERIALIZACIÓN
NIVEL 8
Las clases que deben ser serializadas deben implementar la
interfaz Serializable.
PERSISTENCIA SIMPLE POR SERIALIZACIÓN
NIVEL 8
Sirve para restaurar un objetos almacenado en un archivo.
CONTROLAR LA SALIDA DE UN PROGRAMA
NIVEL 8
Para que cuando el usuario de clic en la X de cerrar se hagan
ciertas validaciones y/u operaciones.
CONTROLAR LA SALIDA DE UN PROGRAMA
NIVEL 8
Para que cuando el usuario de clic en la X de cerrar se hagan
ciertas validaciones y/u operaciones.
ARCHIVO DE LOGS
NIVEL 8
Sirve para llevar una traza de todos los problemas encontrados
en el manejo de la persistencia.
COMPONENTE JComboBox
NIVEL 8
COMPONENTE JComboBox
NIVEL 8
COMPONENTE JComboBox
NIVEL 8
COMPONENTE JComboBox
NIVEL 8
USO DEL DEPURADOR DE ECLIPSE
NIVEL 8
PREGUNTAS
NIVEL 8
HOJA DE TRABAJO
NIVEL 8