manejo avanzado de flujos de entrada/salida

Download Manejo Avanzado de Flujos de Entrada/Salida

Post on 24-May-2015

9.245 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

  • 1. Manejo avanzado de streamsde estrada/salida Ing. Rolando Steep Quezada Martnez [email_address] Programacin Avanzada en Java

2. La clase File

  • Una instancia de la clase File es representacin abstracta de una ruta de acceso para un archivo o un directorio,proporciona informacin acerca de los archivos, de sus atributos, de los directorios, etc.
  • Que exista un objeto de tipo File no implica que exista el archivo (o directorio) correspondiente en el sistema de archivos.
  • Constructores
    • public File(String pathname)
    • public File(String parent, String child)
    • public File(File parent, String child)
    • public File(URI uri)

3. 4. Listar los archivos de un directorio 5. 6. Obtener informacin de un archivo 7. Los streams (flujos)

  • Java define la entrada/salida en trminos de streams.
  • Un stream es una secuencia ordenada de datos.
  • Los streams pueden ser leidos (reads) desde una fuente o escritos (writes) hacia un destino
  • Los streams estn definidos en el paquetejava.io
  • Java define dos tipos de streams:
    • Byte streams : Flujo de datos binarios en formato de 1 byte
    • Character streams : Flujo de caracteres unicode de 2 bytes

8. 9. Clases orientadas a flujo de bytes de entrada

  • Clases que representan origen :
  • FileInputStream
  • ByteArrayInputStream
  • PipedInputStream
  • Clases que aaden caractersticas a un origen:
  • ObjectInputStream
  • SequenceInputStream
  • FilterInputStream
  • BufferedInputStream
  • DataInputStream
  • PushbackInputStream

10. Clases orientadas a flujo de bytes de salida

  • Clases que representan destino :
  • FileOutputStream
  • ByteArrayOutputStream
  • PipedOutputStream
  • Clases que aaden caractersticas a un destino:
  • ObjectOuotputStream
  • FilterOutputStream
  • BufferedOutputStream
  • DataOutputStream

11. Clases orientadas a flujo de caracteres de entrada

  • Clases que representan origen :
  • CharArrayReader
  • FileReader
  • PipedReader
  • StringReader
  • Clases que aaden caractersticas a un origen:
  • BufferedReader
  • FilterReader
  • InputStreamReader
  • LineNumberReader
  • PushbackReader

12. Clases orientadas a flujo de caracteres de salida

  • Clases que representan destino :
  • CharArrayWriter
  • FileWriter
  • PipedWriter
  • StringWriter
  • Clases que aaden caractersticas a un destino:
  • BufferedWriter
  • PrintWriter
  • OutputStreamWriter
  • FilterWriter

13. Flujos sobre archivos binarios 14. Patrn Decorador en el paquete java.io Este patrn permite aadir de modo dinmico nuevas funciones a objetos individuales (no a clases completas). En vez de usar la herencia tradicional, este patrn encapsula un objeto dentro de un objeto decorador, que se encarga de proporcionar las nuevas funciones. 15. Flujos filtrados de escritura 16. Flujos filtrados de lectura 17. Serializacion

  • Existen dos streams que permiten serializar y deserializar un objeto.
    • Serializar significa transformar un objeto en una secuencia de bytes para escribirlo en un stream.
    • Deserializar significa transformar una secuencia de bytes leda de un stream en un objeto.
  • Esta posibilidad es muy til para:
    • Persistir objetos (instancias).
    • Transmitir objetos (instancias).
  • Son ObjectInputStream y ObjectOutputStream.

18. Acceso aleatorio a archivos

  • 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 carcter se subindica mediante un ndice.
  • 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 posicin del fichero nos encontramos, y con el que se puede trabajar para posicionarse en el fichero.

19. 20. Resumen

  • La clase File permite obtener informacin de un archivo o un directorio.
  • Java trata la informacin como flujos, ya sea de entrada o de salida
  • Existen dos jerarquas que definen la base para entrada/salida tanto de caracteres como de bytes
  • En la entrada/salida de java se aplica el patrn Decorator al usar Flujos Filtrados.
  • La serializacin permite el almacenamiento y recuperacin de Objetos que implementen la interface Serializable.
  • La clase RandomAccessFile permite acceso aleatorio a un archivo, pudindose desplazar de manera no secuencial.

21. Prctica 15

  • Objetivos
    • Poder manipular la estructura de archivos del entorno operativo.
    • Implementar aplicaciones que hagan uso de recursos externos por medio de mecanismos de entrada/salida.
    • Implementar Persistencia de datos mediante la Serializacin.

22.

Recommended

View more >