Entrada y Salida de datos en Java

18,843 views

Published on

Presentacion en ppt que explica los diferentes flujos de entreda y salida de datos de una manera concisa y con ideas principales.

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
18,843
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
208
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Entrada y Salida de datos en Java

  1. 1. Entrada y Salida de datos en JAVA
  2. 2. ARCHIVO  Un archivo es un conjunto de datos de largo variable identificado con un nombre. Un nombre de archivo suele tener dos partes separadas por un punto. La primera parte alude a su propósito; la segunda, llamada extensión, indica el tipo de datos que contiene.  Un archivo cuyo nombre termina en “.class” contiene la definición de una clase Java y el código ejecutable para sus métodos; un archivo terminado en quot;.javaquot; contiene el texto del código fuente escrito por el programador. Los archivos se agrupan en directorios (hoy en día denominados carpetas).
  3. 3. DIRECTORIO  Un directorio es un conjunto de archivos guardados bajo un nombre común, el nombre del directorio. Un directorio puede estar dentro de otro directorio, llamado a v eces quot;directorio padre”. Se forma así un árbol de directorios, una organización jerárquica de directorios y subdirectorios contenidos en ellos, en varios niveles.
  4. 4. RUTA O PATH  La lista ordenada de directorios que lleva desde la raíz del árbol hasta un archivo específico se denomina una ruta o en inglé s quot;pathquot;. Un ejemplo en MS Windows sería C:Mis DocumentosFHernandezDesaSoft EntradaSalidaapuntes.pdf  En Unix o Linux, /home/fhernandez/DesaSoft/EntradaSalida /apuntes.pdf
  5. 5. TIPOS DE ACCESO A DATOS  Acceso aleatorio (quot;randomquot;): Los archivos de acceso aleatorio, al igual que lo que su cede usualmente con la memoria (RAM=Random Access Memory), permiten acceder a los datos en forma no secuencial, desordenada. Esto implica que el archivo debe estar disponible en su totalidad al momento de ser accedido, algo que no siempre es posible  Acceso secuencial (flujos o quot;streamsquot;): En este caso los datos son leídos secuenci almente, desde el comienzo del archivo hasta el final (el cual muchas veces no se conoce a priori). Este es el caso de la lectura del teclado o la escritura en una consola de texto, no se sabe cuándo el operador terminará de escribir.  Concatenación (tuberías o quot;pipesquot;): Muchas veces es útil armar conexion es entre programas que corren simultáneamente dentro de una misma máquina, de forma que lo que uno produce se envía por un “tubo” para ser recibido por el otro, que está esperando a la salida del tubo. Las tuberías o quot;pipesquot; cumplen esta función.
  6. 6. ENTRADA Y SALIDA ESTÁNDAR (ESTANDAR I/O)  En sistemas como MS Windows o Unix (incluyend o Linux), en donde existe el concepto de terminal o consola de texto, el sistema operativo provee un mecanismo básico de interacción con el usuario conectando el flujo de datos proveniente del teclado a la llamada “entrada estándar” del programa, mostrando la quot;salida estándarquot; del programa como texto desplegado en la pantalla. La entrada estándar y la salida estándar pueden redireccionarse, haciendo por ejemplo que se lea de un archivo y se escriba en otro.
  7. 7. FLUJOS DE ENTRADA Y SALIDA  Un flujo de entrada / salida (I/O stream, Input / Output stream) representa una fuente desde la cual se reciben datos o un destino hacia el cual se envían datos. Un flujo de datos puede provenir o dirigirse hacia archivos en disco, dispositivos de comunicaciones, otros programas o arreglos en memoria. Los datos pueden ser bytes, tipos primitivos, caracteres propios de un idioma local, u objetos. Los flujos pueden simplemente transferir datos sin modificación o manipular esos datos para transformarlos de diversas maneras como parte del proceso de transferencia. Sea cual sea el tipo de datos, un flujo se presenta como una secuencia de datos. Un flujo de entrada (in put stream) lee datos de una fuente, un item por vez. Un flujo de salida (output stream) escribe datos en un destino, un item por vez.
  8. 8. FLUJOS DE BYTES (BYTE STREAMS)  Los flujos de bytes realizan operaciones de entrada y salida en base a bytes de 8 bits. Todos las clases de flujos de bytes descienden de las clases InputStream y OutputStream. Las clases FileInputStream y FileOutputStream ma nipulan flujos de bytes provenientes o di rigidos hacia archivos en disco.
  9. 9. FLUJOS DE CARACTERES  Los flujos de caracteres suelen ser clases envolventes de los flujos de bytes. Los flujos de caracteres usan los flujos de bytes a nivel físico; los flujos de bytes realizan las transformaciones requeridas por los esquemas de codificación en forma transparente (invisible) para el usuario. La clase FileReader usa FileInputStream, la clase FileWriter usa FileOutputStream.
  10. 10. FLUJO DE CARACTERES  Un buffer es un área de memoria utilizada como almacenamiento intermedio para mejorar la eficiencia de las operaciones de entrada salida: escribir o leer de memoria es mucho más rápido que escribir o leer de dispositivos periféricos. Cuando se usan buffers sólo se lee o escribe en el dispositivo final cuando el buffer está lleno, reduciendo la cantidad de operaciones de lectura y escritura sobre los dispositivos lentos (más lentos que la memoria). Las clases para entrada salida con buffer son clases envolventes de las clases para entrada salida sin buffer. Las clases disponibles para entrada salida con buffer son:  BufferedInputStream y BufferedOutputStream para flujos de bytes, BufferedReader y BufferedWriter para flujos de caracteres. Estas clases disponen del método flush() para forzar la operación de entrada salida esté o no el buffer lleno, operación que conviene hacer en momentos críticos donde puede haber pérdida de información.
  11. 11. FLUJO DE DATOS  Los flujos de datos soportan operaciones de e ntrada salida de datos de tipo primitivo (bool ean, char, byte, short, int, long, float, y double) así como cadenas de caracteres (String).  Los flujos de datos implementan la interfaz DataInput o la interfaz DataOutput. Las implementaciones más usadas de estas interfaces son las clases DataInputStream y DataOutputStream.
  12. 12. FLUJO DE OBJETOS  Los flujos de objetos permiten realizar operaciones de entrada salida de objetos. Muc has de las clases estándar soportan serialización de sus objetos, implementando la Interfaz Serializable. La serialización de objetos permite guardar el objeto en un archivo escribiendo sus datos en un flujo de bytes. Es posible luego leer desde el archivo el flujo de bytes y reconstruir el objeto original.  Las clases de flujos de objetos son ObjectInputStream y ObjectOutputStream. Estas clases implementan las interfaces ObjectInput y ObjectOutput, subinterfaces de DataInput y DataOutput. En consecuencia, todos los métodos de entrada salida que estaban disponibles para flujos de datos primitivos estarán implementados también para flujos de objetos.  Si un objeto tiene referencias a objetos de otras clases, los métodos writeObject y readObject deberán recorrer la jerarquía de clases buscando todo lo necesario para poder construir el flujo con todos los objetos necesarios. Los objetos guardados se reconstruyen exactamente como estaban; si existen varias referencias a un mismo objeto, cuando los objetos sean reconstruidos todas esas referencias seguirán apuntando al mismo objeto.
  13. 13. EL PAQUETE java.io  El examen de la API de Java muestra la complejidad y variedad de clases contenidas en el paquete java.io. La visión quot;Treequot; en la API de java.io muestra la jerarquía de clases. Algunas otras clases útiles permiten:  Manipular archivos comprimidos en el paquete java. util.zip: ZipFile, ZipInputStream, ZipOutputStream), para formato ZIP, y sus equivale ntes GZIPFile, etc. para formato GZIP, agregar checksums para detectar errores o alteraciones de archivos, CheckedInputStream, CheckedOutputSt ream.

×