metodos de entrada y salida

20
Universidad Politécnica Salesiana Integrantes: Carlos de la Torre Cristian Guachamin María Auxiliadora Montalvo Diego Noboa Javier Salinas Silvia Vega Métodos de Entrada y Salida

Upload: cristian-andres

Post on 24-May-2015

15.159 views

Category:

Education


0 download

DESCRIPTION

Metodos de Entrada y Salida utilizados en Java

TRANSCRIPT

Page 1: Metodos de entrada y Salida

Universidad Politécnica Salesiana

Integrantes:Carlos de la Torre

Cristian GuachaminMaría Auxiliadora Montalvo

Diego NoboaJavier Salinas

Silvia Vega

Métodos de Entrada y Salida

Page 2: Metodos de entrada y Salida

Conceptos básicos de entrada y salida

Todo programa de computadora opera sobre un conjunto de datos de entrada y produce algún tipo de salida. Este repartido explica la forma en que Java maneja la entrada y salida de datos.

Page 3: Metodos de entrada y Salida

Archivos, directorios, rutas (File, Directory, Path)

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 ".java" contiene el texto del código fuente escrito por el programador.

Page 4: Metodos de entrada y Salida

Tipos de acceso a datos

Acceso aleatorio ("random"): Los archivos de acceso aleatorio, al igual que lo que sucede 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 "streams"): En este caso los datos son leídos secuencialmente, 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 "pipes"): Muchas veces es útil armar conexiones 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 "pipes" cumplen esta función.

Page 5: Metodos de entrada y Salida

Entrada y salida estándar (Standard I/O)

En sistemas como MS Windows o Unix (incluyendo 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 "salida estándar" del programa como texto desplegado en la pantalla.

Page 6: Metodos de entrada y Salida

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. 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.

Page 7: Metodos de entrada y Salida

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 clasesFileInputStream y FileOutputStream manipulan flujos de bytes provenientes o dirigidos hacia archivos en disco.

Page 8: Metodos de entrada y Salida

Flujos de Caracteres

El uso de flujos de bytes sólo es apto para las operaciones más elementales de entrada salida; es preciso usar los flujos más adecuados según los tipos de datos a manejar.

Page 9: Metodos de entrada y Salida

Entrada salida desde la línea de comando

Un programa puede correrse desde la línea de comando en una terminal, e interactuar con el usuario para pedir ingreso de datos. En Java hay tres flujos estándar: la entrada estándar (Standard Input), accesible a través del objeto System.in; la salida estándar (Standard Output), accesible a través del objeto System.out; y el error estándar (Standard Error) accessible a través del objeto System.err.

Page 10: Metodos de entrada y Salida

Flujos de datos

Los flujos de datos soportan operaciones de entrada salida de datos de tipo primitivo (boolean, 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.

Page 11: Metodos de entrada y Salida

Flujos de objetos.

Los flujos de objetos permiten realizar operaciones de entrada salida de objetos. Muchas 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.

Page 12: Metodos de entrada y Salida

Entrada salida de archivos

Existen operaciones de entrada salida sobre archivos que no pueden tratarse como flujos de 8 de 13 datos. La clase File permite examinar y manipular archivos y directorios, en forma independiente de la plataforma (MS Windows, Solaris, Linux). Los archivos pueden accederse también en forma no secuencial o aleatoria (random access files); existen clases específicas para acceder a los archivos sin necesidad de recorrerlos ordenadamente.

Page 13: Metodos de entrada y Salida

Objetos de tipo File

Las instancias de la clase File representan nombres de archivo, no los archivos en sí. El archivo correspondiente a un nombre puede no existir. Un objeto de clase File permite examinar el nombre del archivo, descomponerlo en su rama de directorios, o crear el archivo si no existe pasando elobjeto de tipo File a un constructor adecuado como FileWriter(File f).

Page 14: Metodos de entrada y Salida

Objetos de tipo FileSi el objeto File se refiere a un archivo existente un programa puede usar este objeto para realizar una serie de operaciones sobre el archivo:• el método delete() borra el archivo inmediatamente; deleteOnExit() lo borra cuando finaliza la ejecución de la máquina virtual Java.• setLastModified() permite fijar la fecha y hora de modificación del archivo.• el método renameTo() permite renombrar el archivo, aunque el objeto File dejará de referirse al archivo renombrado, ya que el String con el nombre del archivo en el objeto File no cambia.• el método mkdir() crea un directorio, mkdirs() también, pero crea los directorios superiores si no existen.• los métodos list() y listFiles() listan el contenido de un directorio. list() devuelve un arreglo de String con los nombres de los archivos, listFiles() devuelve un arreglo de objetos File.• el método estático createTempFile() crea un nuevo archivo con un nombre único de su creación y devuelve un objeto File que apunta a él. Es útil para crear archivos temporales, que luego se borran, asegurándose de tener un nombre de archivo no repetido.• el método estático listRoots() devuelve una lista de nombres de archivo correspondientes a la raíz de los sistemas de archivos. En Microsoft Windows serán de formato a:\ y c:\, en UNIX y Linux será el directorio raíz único /.

Page 15: Metodos de entrada y Salida

Archivos de acceso aleatorio

Un archivo de acceso aleatorio permite leer o escribir datos en forma no secuencial. El contenido de un archivo suele consistir en un conjunto de partes o registros, generalmente de distinto tamaño. Una búsqueda de información en el archivo equivale a ubicar un determinado registro. En el acceso secuencial es preciso leer el archivo pasando por todos sus registros hasta llegar al registro que se desea ubicar.

Page 16: Metodos de entrada y Salida

Tuberías

Las clases PipedInputStream y PipedOutputStream son utilizadas en conjunto para transmitir datos de una punta a la otra de un tubo. Este mecanismo permite transferir datos entre

programas.

Page 17: Metodos de entrada y Salida

Codificación de caracteres

Las clases InputStream, OutputStream y sus asociadas mueven datos a nivel de bytes. Un byte es la unidad de información tradicionalmente utilizada en computadoras. El tamaño de un byte (8 bits de valor 0 o 1) es suficiente para representar pequeños números (256 valores posibles) así como letras y símbolos del alfabeto inglés (código ASCII, usualmente pronunciado “asqui”) o bien de alfabetos similares como los derivados del latín (norma ISO88591).

Page 18: Metodos de entrada y Salida

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 "Tree" 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 equivalentes GZIPFile, etc. para formato GZIP, agregar checksums para detectar errores o alteraciones dearchivos, CheckedInputStream, CheckedOutputStream. • manejar archivos tipo JAR (Java ARchive, también tipo ZIP) en java.util.jar.

Page 19: Metodos de entrada y Salida

GRACIAS…

Page 20: Metodos de entrada y Salida