Java

Páginas: 9 (2075 palabras) Publicado: 25 de febrero de 2013
Entrada y Salida con Java
Programación Orientada a Objetos Facultad de Informática

Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid

E/S con flujos (streams)
En Java se define la abstracción de stream (flujo) para tratar la comunicación de información entre el programa y el exterior
Entre una fuente y un destino fluye una secuenciade datos

Los flujos actúan como interfaz con el dispositivo o clase asociada
Operación independiente del tipo de datos y del dispositivo Mayor flexibilidad (p.e. redirección, combinación) Diversidad de dispositivos (fichero, pantalla, teclado, red, …) Diversidad de formas de comunicación
• Modo de acceso: secuencial, aleatorio • Información intercambiada: binaria, caracteres, líneas

flujo(stream)

Fuente
Juan Pavón Mestras Facultad de Informática UCM, 2007-08

...

dato

dato

Destino

Entrada/Salida con Java

2

Flujos estándar
Como en Unix:
Entrada estándar - habitualmente el teclado Salida estándar - habitualmente la consola Salida de error - habitualmente la consola

En Java se accede a la E/S estándar a través de campos estáticos de la clasejava.lang.System
System.in implementa la entrada estándar System.out implementa la salida estándar System.err implementa la salida de error

Dispositivo de entrada
(System.in)

Flujo entrada

Flujo salida

Datos

Programa

Datos

(System.out)

Dispositivo de salida

Juan Pavón Mestras Facultad de Informática UCM, 2007-08

Entrada/Salida con Java

3

Flujos estándar
System.inInstancia de la clase InputStream: flujo de bytes de entrada Metodos
• read() permite leer un byte de la entrada como entero • skip(n ) ignora n bytes de la entrada • available() número de bytes disponibles para leer en la entrada

System.out
Instancia de la clase PrintStream: flujo de bytes de salida Metodos para impresión de datos
• print(), println() • flush() vacía el buffer de salidaescribiendo su contenido

System.err
Funcionamiento similar a System.out Se utiliza para enviar mensajes de error (por ejemplo a un fichero de log o a la consola)
Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Entrada/Salida con Java

4

Ejemplo - uso flujos estándar
import java.io.*; class LecturaDeLinea { public static void main( String args[] ) throws IOException { int c; int contador= 0; // se lee hasta encontrar el fin de línea while( (c = System.in.read() ) != '\n' ) { contador++;

System.out.print( (char) c );
}

System.out.println(); // Se escribe el fin de línea System.err.println( "Contados "+ contador +" bytes en total." );
} }

Juan Pavón Mestras Facultad de Informática UCM, 2007-08

Entrada/Salida con Java

5

Utilización de los flujos
Los flujos seimplementan en las clases del paquete java.io Esencialmente todos funcionan igual, independientemente de la fuente de datos
Clases java.io.Reader y java.io.Writer

int read() int read(char buffer[]) int read(char buffer[], int offset, int length) int write(int aCharacter) int write(char buffer[]) int write(char buffer[], int offset, int length)

Juan Pavón Mestras Facultad de Informática UCM,2007-08

Entrada/Salida con Java

6

Utilización de los flujos
Lectura
1.

Abrir un flujo a una fuente de datos (creación del objeto stream)
• • • • Teclado Fichero Socket remoto Leer datos

2. 3.

Mientras existan datos disponibles Cerrar el flujo (método close) Abrir un flujo a una fuente de datos (creación del objeto stream)
• • • • Pantalla Fichero Socket local

Escritura
1.2. 3.

Mientras existan datos disponibles Cerrar el flujo (método close)
Escribir datos

Nota: para los flujos estándar ya se encarga el sistema de abrirlos y cerrarlos Un fallo en cualquier punto produce la excepción IOException
Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Entrada/Salida con Java

7

Entrada de texto desde un fichero
try { BufferedReader reader = new...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera
  • Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS