1 / 14

Entrada / Salida

Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino . Desde el punto de vista del proceso que maneja el stream, éstos se dividen en:

toril
Download Presentation

Entrada / Salida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Entrada / Salida

  2. Java adopta de Unix el concepto de stream • Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. • Desde el punto de vista del proceso que maneja el stream, éstos se dividen en: • streams de entrada (o de lectura): son aquellos en los que podemos leer datos y nuestro proceso es el destino. • streams de salida (o de escritura): son aquellos en los que podemos escribir datos y nuestro proceso actúa como fuente. • Un lenguaje de programación debe permitir hacer operaciones de E/S sobre un conjunto muy diverso de dispositivos (fichero, consola, conexiones de red...) • Además, en muchos casos, la E/S debe poder realizarse de modos muy distintos (secuencial, aleatorio, caracter a caracter, por palabras, por líneas, binario...) • Java trata de modo muy similar los distintos tipos de streams.

  3. Flujos de entrada • Binarios (leen bytes) • Simples: leen los bytes en su formato original • Compuestos (filtros): permiten leer los datos siguiendo algún formato (por líneas, transformándolos en números, ...) • De caracteres o Readers (leen caracteres unicode) • Simples • Compuestos (filtros)

  4. Jerarquía de los flujos de entrada binarios • InputStream • AudioInputStream • ByteArrayInputStream • FileInputStream • FilterInputStream • ObjectInputStream • PipedInputStream • SequenceInputStream • StringBufferInputStream BufferedInputStream DataInputStream LineNumberInputStream PushBackInputStream ...

  5. Jerarquía de los flujos de entrada de caracteres (Readers) • Reader • BufferedReader • CharArrayReader • FilterReader • PushBackReader • InputStreamReader • FileReader • PipedReader • StringReader

  6. Lectura de fichero (I) FileInputStream InputStreamReader BufferedReader int read () lee 1 byte String readLine () lee 1 línea int read () lee 1 caracter Fichero try { FileInputStream fin = new FileInputStream(“fichero.txt"); InputStreamReader isr = new InputStreamReader(fin); BufferedReader miEntrada = new BufferedReader(isr); String linea = miEntrada.readLine(); while( linea != null ) { System.out.println(linea); linea = miEntrada.readLine(); } } catch (IOException e){ System.out.println(e); }

  7. Lectura de fichero (II) FileReader BufferedReader String readLine () lee 1 línea int read () lee 1 caracter Fichero try { FileReader fr = new FileReader (“fichero.txt"); BufferedReader miEntrada = new BufferedReader(fr); String linea = miEntrada.readLine(); while( linea != null ) { System.out.println(linea); linea = miEntrada.readLine(); } } catch (IOException e){ System.out.println(e); }

  8. Lectura de consola (entrada estándar) InputStream (System.in) InputStreamReader BufferedReader String readLine () lee 1 línea int read () lee 1 caracter void read (byte [ ]) lee n bytes Entrada estándar (teclado) String s; int numero; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader stdin = new BufferedReader(isr); try { s = stdin.readLine(); numero = Integer.parseInt( s ); } catch ( IOException e ) { System.out.println(e); } catch (NumberFormatException e){ System.out.println(e); }

  9. Flujos de salida • Binarios (escriben bytes) • Simples: escriben los bytes en su formato original • Compuestos (filtros): permiten añadir un formato a los datos. • De caracteres o Writers (escriben caracteres unicode) • Simples • Compuestos (filtros)

  10. Jerarquía de los flujos de salida binarios • OutputStream • ByteArrayOutputStream • FileOutputStream • FilterOutputStream • ObjectOutputStream • PipedOutputStream BufferedOutputStream DataOutputStream PrintStream ...

  11. Jerarquía de los flujos de salida de caracteres (Writers) • Writer • BufferedWriter • CharArrayWriter • FilterWriter • PushBackWriter • OutputStreamWriter • FileWriter • PipedWriter • StringWriter

  12. Escritura a fichero (I) FileOutputStream PrintStream void write (int b) escribe 1 byte print(...), println(...) escribe String, int, float, boolean... Fichero try { FileOutputStream fout = new FileOutputStream("test.out"); PrintStream miSalida = new PrintStream(fout); miSalida.println("texto"); miSalida.close(); fout.close(); } catch (IOException e) { System.out.println("Error: " + e); }

  13. Escritura a fichero (II) FileWriter void write (int c) escribe 1 caracter Fichero String s = "Texto a escribir"; try { FileWriter fw = new FileWriter("test.out"); for( int i = 0; i < s.length(); i++ ) fw.write(s.charAt(i)); fw.close(); } catch (IOException e) { System.out.println("Error: " + e); }

  14. Escritura a consola (salida estándar) PrintStream (System.out) Salida estándar (consola) • System.out es un stream estático de tipo PrintStream, asociado con la salida estándar (normalmente la consola). • No es necesario abrirlo ni cerrarlo. • Implementa, entre otros, los métodos print y println. Dichos métodos están sobrecargados para aceptar parámetros de tipo String, char, int, long, float, double, boolean y Object.

More Related