Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAndrés Piedrahita Modificado hace 10 años
1
Buffer Prácticas de EDI Juan Ramón Pérez Pérez
2
Buffer Prácticas EDI - © Juan Ramón Pérez2 Clase que hace de intermediaria entre el fichero y el resto de las clases de nuestra aplicación. Lectura de bloques de caracteres Almacenar bloques en un array (buffer) de tamaño fijo Permite el procesamiento carácter a carácter Permitir tratamiento correcto de caracteres acentuados y eñes. Debe permitir al resto de las clases, leer (obtener) carácter a carácter todo el fichero. Debe permitir deshacer la operación obtener.
3
Clase Buffer Prácticas EDI - © Juan Ramón Pérez3 Buffer vector: caracter [] InputStreamReader TAM_BUFFER= 100 cursor: entero cargarBuffer() create(URL) obtenerCaracter(): carácter retroceder() esFinal(): boolean Constructor Undo de obtenerCaracter() Elegir el stream adecuado según requisitos
4
obtenerCaracter() Prácticas EDI - © Juan Ramón Pérez4 <Basedato obtenerCaracter() cargarBuffer() :Buffer:InputStream read() Carácter: “<“ devuelve: < Si no hay caracteres para devolver Se llama al principio o cada vez que lleguemos al final del Buffer Se carga por bloques de caracteres
5
retroceder() Prácticas EDI - © Juan Ramón Pérez5 <Basedato :Buffer retroceder()
6
esFinal() Prácticas EDI - © Juan Ramón Pérez6 Devuelve true cuando el buffer ya no pueda devolver más caracteres. Es decir, hemos llegado al último carácter leído del Buffer y ya hemos leído todo el fichero. Devuelve false en cualquier otro caso. ¡Ojo! La clase que utiliza el buffer no se tiene que enterar de que el buffer se tiene que recargar porque llegue al final, esto es un proceso interno al buffer. atos>????
7
Resolver situaciones conflictivas Prácticas EDI - © Juan Ramón Pérez7 ¿Qué pasa si estamos al final del vector del Buffer y llaman a obtenerCaracter()? ¿Qué pasa si estamos al principio del vector y llaman a retroceder()? Si acabamos de hacer la carga del primer bloque del fichero. Si acabamos de cargar un bloque intermedio del fichero. Algunas de estas situaciones provocarán un error que no se puede resolver en la propia clase …
8
Tratamiento de errores mediante excepciones Prácticas EDI - © Juan Ramón Pérez8 Excepciones: mecanismo eficiente y seguro de comunicación de situaciones de error entre clases. Tipos de clases: Sólo determinadas clases se encargarán de la interacción con el usuario. La mayoría de las clases resolverán las tareas encomendadas.
9
Tratamiento de errores mediante excepciones Prácticas EDI - © Juan Ramón Pérez9 Si surge algún error en las clases internas, que no se pueda tratar en la propia clase, se pasará a la clase llamadora mediante excepciones. Si ninguna clase intermedia pudo tratar el error, la clase de interfaz notificará el error al usuario de la manera más adecuada.
10
Esquema del tratamiento de errores Prácticas EDI - © Juan Ramón Pérez10 Interfaz Clases internas :Principal :UnBuffer Excepción Tratamiento interno Excepción No tratada
11
Esquema del tratamiento de errores (con clases intermedias) Prácticas EDI - © Juan Ramón Pérez11 Interfaz Clases internas :Principal :UnBuffer :UnaClaseI ntermedia
12
Excepción ExcepcionAnalisis Prácticas EDI - © Juan Ramón Pérez12 ExcepcionAnalisis TipoError: (buffer, …) Codigo: entero create(String mensaje, TipoError, codigo); getTipoError(): TìpoError; getCodigo(): entero java.lang.Exception
13
Tareas Prácticas EDI - © Juan Ramón Pérez13 Finalizar el diseño de la clase Buffer para que cumpla los requisitos pedidos. Implementar métodos públicos y privados de la clase Buffer. Implementar clase Excepción Utilizar clase Excepción en el buffer. Crear una clase de prueba para buffer: PruebaBuffer.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.