NIVEL 8

         ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2)




                     Mario José Villamizar Cano
                   mj.villamizar24@uniandes.edu.co
                             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
NIVEL 8

             REDES SOCIALES




           mjvc007@hotmail.com




        http://twitter.com/mariocloud




http://linkedin.com/in/mariojosevillamizarcano
NIVEL 8

  NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN


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

  NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN




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

                    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

       Clase                Método            Excepción                Causa
File             File(nombreCompleto)   NullPointerException   El nombre completo
                                                               del archivo o
                                                               directorio es nulo
File             File(directorio,       NullPointerException   El nombre corto del
                 nombreCorto)                                  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
NIVEL 8

                              LECTURA DE ARCHIVOS

       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
NIVEL 8

             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




COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
NIVEL 8




 COMO LANZAR VARIOS TIPOS DE EXCEPCIONES




COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
NIVEL 8

REPORTES Y OTRAS SALIDAS EN ARCHIVOS
NIVEL 8

            IMPORTACIÓN DE DATOS DESDE ARCHIVOS



El pedido del cliente está en un archivo, cuyo formato se ilustra en la
                            siguiente figura.
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

IMPORTACIÓN DE DATOS DESDE ARCHIVOS
NIVEL 8

                      CASOS DE PRUEBA
  Las pruebas regularmente están enfocadas en verificar que las
nuevas excepciones se lanzan adecuadamente.
NIVEL 8

         PERSISTENCIA SIMPLE POR SERIALIZACIÓN
Sirve para guardar objetos en un archivo.
NIVEL 8

          PERSISTENCIA SIMPLE POR SERIALIZACIÓN
   Las clases que deben ser serializadas deben implementar la
interfaz Serializable.
NIVEL 8

        PERSISTENCIA SIMPLE POR SERIALIZACIÓN
Sirve para restaurar un objetos almacenado en un archivo.
NIVEL 8

          CONTROLAR LA SALIDA DE UN PROGRAMA
  Para que cuando el usuario de clic en la X de cerrar se hagan
ciertas validaciones y/u operaciones.
NIVEL 8

          CONTROLAR LA SALIDA DE UN PROGRAMA
  Para que cuando el usuario de clic en la X de cerrar se hagan
ciertas validaciones y/u operaciones.
NIVEL 8

                       ARCHIVO DE LOGS
  Sirve para llevar una traza de todos los problemas encontrados
en el manejo de la persistencia.
NIVEL 8

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

APO2 - Presentacion nivel 8

  • 1.
    NIVEL 8 ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2) Mario José Villamizar Cano mj.villamizar24@uniandes.edu.co 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
  • 2.
    NIVEL 8 REDES SOCIALES mjvc007@hotmail.com http://twitter.com/mariocloud http://linkedin.com/in/mariojosevillamizarcano
  • 3.
    NIVEL 8 NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN 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
  • 4.
    NIVEL 8 NIVEL 8 – ARCHIVOS, SERIALIZACIÓN Y TIPOS DE EXCEPCIÓN 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
  • 5.
    NIVEL 8 CASOS DE ESTUDIO Caso de estudio 1: Explorados de archivos
  • 6.
    NIVEL 8 CASOS DE ESTUDIO Caso de estudio 2: Tienda virtual de discos
  • 7.
    NIVEL 8 HOJAS DE TRABAJO Hoja de trabajo 1: Campeonato de fórmula 1
  • 8.
    NIVEL 8 HOJAS DE TRABAJO Hoja de trabajo 2: Mundial de fútbol
  • 9.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Interfaz Gráfica
  • 10.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Requerimientos funcionales.
  • 11.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Requerimientos funcionales.
  • 12.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Requerimientos funcionales.
  • 13.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Modelo del Mundo
  • 14.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Modelo de la Interfaz
  • 15.
    NIVEL 8 CASO DE ESTUDIO 1 – EXPLORADOR DE ARCHIVOS Modelo de las Pruebas
  • 16.
  • 17.
  • 18.
  • 19.
    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
  • 20.
  • 21.
    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).
  • 22.
    NIVEL 8 LECTURA DE ARCHIVOS Clase Método Excepción Causa File File(nombreCompleto) NullPointerException El nombre completo del archivo o directorio es nulo File File(directorio, NullPointerException El nombre corto del nombreCorto) 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
  • 23.
    NIVEL 8 LECTURA DE ARCHIVOS 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
  • 24.
    NIVEL 8 MANIPULACIÓN DE CADENAS DE CARACTERES Métodos de la clase String: trim( ) toLowerCase() toUpperCase() indexOf( caracter ) lastIndexOf( caracter )
  • 25.
    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 )
  • 26.
    NIVEL 8 MANIPULACIÓN DE CADENAS DE CARACTERES Ejemplo de la Clase Directorio:
  • 27.
    NIVEL 8 ESCRITURA DE ARCHIVOS Se utilizan las clases PrintWriter : Los métodos print( cadena ) y flush( ) también pueden ser utilizados.
  • 28.
    NIVEL 8 ESCRITURA DE ARCHIVOS Ejemplo de uso del PrintWriter :
  • 29.
  • 30.
  • 31.
  • 32.
    NIVEL 8 PRUEBAS UNITARIAS CON ARCHIVOS Estas pruebas requieren de un escenario físico, ya que hay que crear archivos y directorios:
  • 33.
    NIVEL 8 PRUEBAS UNITARIAS CON ARCHIVOS Estas pruebas requieren de un escenario físico, ya que hay que crear archivos y directorios:
  • 34.
    NIVEL 8 PRUEBAS UNITARIAS CON ARCHIVOS Construcción de un escenario de pruebas:
  • 35.
    NIVEL 8 PRUEBAS UNITARIAS CON ARCHIVOS Creación de una prueba:
  • 36.
    NIVEL 8 PRUEBAS UNITARIAS CON ARCHIVOS Creación de una prueba:
  • 37.
    NIVEL 8 CASOS DE ESTUDIO Caso de estudio 2: Tienda virtual de discos
  • 38.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Modelo del Mundo
  • 39.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Modelo de las Pruebas
  • 40.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Requerimientos funcionales.
  • 41.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Requerimientos funcionales.
  • 42.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Requerimientos funcionales.
  • 43.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Requerimientos funcionales.
  • 44.
    NIVEL 8 CASO DE ESTUDIO 2 – TIENDA VIRTUAL DE DISCOS Requerimientos NO funcionales.
  • 45.
    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.
  • 46.
    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.
  • 47.
    NIVEL 8 DECLARACIÓN DELA NUEVAS CLASES PARA MANEJAR EXCEPCIONES
  • 48.
    NIVEL 8 DECLARACIÓN DELA NUEVAS CLASES PARA MANEJAR EXCEPCIONES
  • 49.
    NIVEL 8 DECLARACIÓN DELA NUEVAS CLASES PARA MANEJAR EXCEPCIONES
  • 50.
    NIVEL 8 COMOLANZAR VARIOS TIPOS DE EXCEPCIONES COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
  • 51.
    NIVEL 8 COMOLANZAR VARIOS TIPOS DE EXCEPCIONES COMO ATRAPAR VARIOS TIPOS DE EXCEPCIONES
  • 52.
    NIVEL 8 REPORTES YOTRAS SALIDAS EN ARCHIVOS
  • 53.
    NIVEL 8 IMPORTACIÓN DE DATOS DESDE ARCHIVOS El pedido del cliente está en un archivo, cuyo formato se ilustra en la siguiente figura.
  • 54.
    NIVEL 8 IMPORTACIÓN DEDATOS DESDE ARCHIVOS
  • 55.
    NIVEL 8 IMPORTACIÓN DEDATOS DESDE ARCHIVOS
  • 56.
    NIVEL 8 IMPORTACIÓN DEDATOS DESDE ARCHIVOS
  • 57.
    NIVEL 8 IMPORTACIÓN DEDATOS DESDE ARCHIVOS
  • 58.
    NIVEL 8 CASOS DE PRUEBA Las pruebas regularmente están enfocadas en verificar que las nuevas excepciones se lanzan adecuadamente.
  • 59.
    NIVEL 8 PERSISTENCIA SIMPLE POR SERIALIZACIÓN Sirve para guardar objetos en un archivo.
  • 60.
    NIVEL 8 PERSISTENCIA SIMPLE POR SERIALIZACIÓN Las clases que deben ser serializadas deben implementar la interfaz Serializable.
  • 61.
    NIVEL 8 PERSISTENCIA SIMPLE POR SERIALIZACIÓN Sirve para restaurar un objetos almacenado en un archivo.
  • 62.
    NIVEL 8 CONTROLAR LA SALIDA DE UN PROGRAMA Para que cuando el usuario de clic en la X de cerrar se hagan ciertas validaciones y/u operaciones.
  • 63.
    NIVEL 8 CONTROLAR LA SALIDA DE UN PROGRAMA Para que cuando el usuario de clic en la X de cerrar se hagan ciertas validaciones y/u operaciones.
  • 64.
    NIVEL 8 ARCHIVO DE LOGS Sirve para llevar una traza de todos los problemas encontrados en el manejo de la persistencia.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
    NIVEL 8 USO DELDEPURADOR DE ECLIPSE
  • 70.
  • 71.