Manejo avanzado de streams  de estrada/salida Ing. Rolando Steep Quezada Martínez [email_address] Programación Avanzada en...
La clase File <ul><li>Una instancia de la clase File es representación abstracta de una ruta de acceso para un archivo o u...
 
Listar los archivos de un directorio
 
Obtener información de un archivo
Los streams (flujos) <ul><li>Java define la entrada/salida en términos de streams. </li></ul><ul><li>Un stream es una secu...
 
Clases orientadas a flujo de bytes de entrada <ul><li>Clases que representan origen : </li></ul><ul><li>FileInputStream </...
Clases orientadas a flujo de bytes de salida <ul><li>Clases que representan destino : </li></ul><ul><li>FileOutputStream <...
Clases orientadas a flujo de caracteres de entrada <ul><li>Clases que representan origen : </li></ul><ul><li>CharArrayRead...
Clases orientadas a flujo de caracteres de salida <ul><li>Clases que representan destino : </li></ul><ul><li>CharArrayWrit...
Flujos sobre archivos binarios
Patrón Decorador en el paquete java.io Este patrón permite añadir de modo dinámico nuevas funciones a objetos individuales...
Flujos filtrados de escritura
Flujos filtrados de lectura
Serializacion <ul><li>Existen dos streams que permiten serializar y deserializar un objeto. </li></ul><ul><ul><li>Serializ...
Acceso aleatorio a archivos <ul><li>La clase RandomAccessFile permite accesar archivos en forma directa. Esta clase permit...
 
Resumen <ul><li>La clase File permite obtener información de un archivo o un directorio. </li></ul><ul><li>Java trata la i...
Práctica 15 <ul><li>Objetivos </li></ul><ul><ul><li>Poder manipular la estructura de archivos del entorno operativo. </li>...
 
Próxima SlideShare
Cargando en…5
×

Manejo Avanzado de Flujos de Entrada/Salida

9.989 visualizaciones

Publicado el

Publicado en: Tecnología

Manejo Avanzado de Flujos de Entrada/Salida

  1. 1. Manejo avanzado de streams de estrada/salida Ing. Rolando Steep Quezada Martínez [email_address] Programación Avanzada en Java
  2. 2. La clase File <ul><li>Una instancia de la clase File es representación abstracta de una ruta de acceso para un archivo o un directorio, proporciona información acerca de los archivos, de sus atributos, de los directorios, etc. </li></ul><ul><li>Que exista un objeto de tipo File no implica que exista el archivo (o directorio) correspondiente en el sistema de archivos. </li></ul><ul><li>Constructores </li></ul><ul><ul><li>public File(String pathname) </li></ul></ul><ul><ul><li>public File(String parent, String child) </li></ul></ul><ul><ul><li>public File(File parent, String child) </li></ul></ul><ul><ul><li>public File(URI uri) </li></ul></ul>
  3. 4. Listar los archivos de un directorio
  4. 6. Obtener información de un archivo
  5. 7. Los streams (flujos) <ul><li>Java define la entrada/salida en términos de streams. </li></ul><ul><li>Un stream es una secuencia ordenada de datos. </li></ul><ul><li>Los streams pueden ser leidos (reads) desde una fuente o escritos (writes) hacia un destino </li></ul><ul><li>Los streams están definidos en el paquete java.io </li></ul><ul><li>Java define dos tipos de streams: </li></ul><ul><ul><li>Byte streams : Flujo de datos binarios en formato de 1 byte </li></ul></ul><ul><ul><li>Character streams : Flujo de caracteres unicode de 2 bytes </li></ul></ul>
  6. 9. Clases orientadas a flujo de bytes de entrada <ul><li>Clases que representan origen : </li></ul><ul><li>FileInputStream </li></ul><ul><li>ByteArrayInputStream </li></ul><ul><li>PipedInputStream </li></ul><ul><li>Clases que añaden características a un origen: </li></ul><ul><li>ObjectInputStream </li></ul><ul><li>SequenceInputStream </li></ul><ul><li>FilterInputStream </li></ul><ul><li>BufferedInputStream </li></ul><ul><li>DataInputStream </li></ul><ul><li>PushbackInputStream </li></ul>
  7. 10. Clases orientadas a flujo de bytes de salida <ul><li>Clases que representan destino : </li></ul><ul><li>FileOutputStream </li></ul><ul><li>ByteArrayOutputStream </li></ul><ul><li>PipedOutputStream </li></ul><ul><li>Clases que añaden características a un destino: </li></ul><ul><li>ObjectOuotputStream </li></ul><ul><li>FilterOutputStream </li></ul><ul><li>BufferedOutputStream </li></ul><ul><li>DataOutputStream </li></ul>
  8. 11. Clases orientadas a flujo de caracteres de entrada <ul><li>Clases que representan origen : </li></ul><ul><li>CharArrayReader </li></ul><ul><li>FileReader </li></ul><ul><li>PipedReader </li></ul><ul><li>StringReader </li></ul><ul><li>Clases que añaden características a un origen: </li></ul><ul><li>BufferedReader </li></ul><ul><li>FilterReader </li></ul><ul><li>InputStreamReader </li></ul><ul><li>LineNumberReader </li></ul><ul><li>PushbackReader </li></ul>
  9. 12. Clases orientadas a flujo de caracteres de salida <ul><li>Clases que representan destino : </li></ul><ul><li>CharArrayWriter </li></ul><ul><li>FileWriter </li></ul><ul><li>PipedWriter </li></ul><ul><li>StringWriter </li></ul><ul><li>Clases que añaden características a un destino: </li></ul><ul><li>BufferedWriter </li></ul><ul><li>PrintWriter </li></ul><ul><li>OutputStreamWriter </li></ul><ul><li>FilterWriter </li></ul>
  10. 13. Flujos sobre archivos binarios
  11. 14. Patrón Decorador en el paquete java.io Este patrón permite añadir de modo dinámico nuevas funciones a objetos individuales (no a clases completas). En vez de usar la herencia tradicional, este patrón encapsula un objeto dentro de un objeto decorador, que se encarga de proporcionar las nuevas funciones.
  12. 15. Flujos filtrados de escritura
  13. 16. Flujos filtrados de lectura
  14. 17. Serializacion <ul><li>Existen dos streams que permiten serializar y deserializar un objeto. </li></ul><ul><ul><li>Serializar significa transformar un objeto en una secuencia de bytes para escribirlo en un stream. </li></ul></ul><ul><ul><li>Deserializar significa transformar una secuencia de bytes leída de un stream en un objeto. </li></ul></ul><ul><li>Esta posibilidad es muy útil para: </li></ul><ul><ul><li>Persistir objetos (instancias). </li></ul></ul><ul><ul><li>Transmitir objetos (instancias). </li></ul></ul><ul><li>Son ObjectInputStream y ObjectOutputStream. </li></ul>
  15. 18. Acceso aleatorio a archivos <ul><li>La clase RandomAccessFile permite accesar archivos en forma directa. Esta clase permite ver un archivo como un arreglo de caracteres y leer o escribir zonas del arreglo. Como lo indica la siguiente figura, cada carácter se subindica mediante un índice. </li></ul><ul><li>Mediante los objetos de esta clase utilizamos ficheros binarios mediante un acceso aleatorio, tanto para lectura como para escritura. En estos ficheros hay un índice que nos dice en qué posición del fichero nos encontramos, y con el que se puede trabajar para posicionarse en el fichero. </li></ul>
  16. 20. Resumen <ul><li>La clase File permite obtener información de un archivo o un directorio. </li></ul><ul><li>Java trata la información como flujos, ya sea de entrada o de salida </li></ul><ul><li>Existen dos jerarquías que definen la base para entrada/salida tanto de caracteres como de bytes </li></ul><ul><li>En la entrada/salida de java se aplica el patrón Decorator al usar Flujos Filtrados. </li></ul><ul><li>La serialización permite el almacenamiento y recuperación de Objetos que implementen la interface Serializable. </li></ul><ul><li>La clase RandomAccessFile permite acceso aleatorio a un archivo, pudiéndose desplazar de manera no secuencial. </li></ul>
  17. 21. Práctica 15 <ul><li>Objetivos </li></ul><ul><ul><li>Poder manipular la estructura de archivos del entorno operativo. </li></ul></ul><ul><ul><li>Implementar aplicaciones que hagan uso de recursos externos por medio de mecanismos de entrada/salida. </li></ul></ul><ul><ul><li>Implementar Persistencia de datos mediante la Serialización. </li></ul></ul>

×