Informatico

Páginas: 9 (2025 palabras) Publicado: 13 de junio 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 unasecuencia de 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íneasflujo (stream)

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

...

dato

dato

Entrada/Salida con Java

Destino

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

Flujo entrada

(System.in)

Datos

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

Flujo salida

Programa

Datos

Dispositivo
de salida

(System.out)

Entrada/Salida con Java

3

Flujos estándarSystem.in
Instancia 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 elbuffer de salida escribiendo 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[] ) throwsIOException {
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

5Utilización de los flujos
Los flujos se implementan 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.

Mientras existan datos disponibles

3.

Cerrar el flujo (método close)

Escritura
1.

Abrir un flujo a una fuente dedatos (creación del objeto stream)




Pantalla
Fichero
Socket local



Escribir datos

2.

Mientras existan datos disponibles

3.

Cerrar el flujo (método close)

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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informática
  • Informatica
  • Informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS