Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Entrada y Salida, Apuntes de Ingeniería Infórmatica

Asignatura: Desarrollo Orientado a Objetos, Profesor: , Carrera: Ingeniería Informática, Universidad: UAX

Tipo: Apuntes

Antes del 2010

Subido el 19/08/2008

uka-54
uka-54 🇪🇸

3.7

(220)

145 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Entrada y salida.
Todo lo que hereda de InputStream o Reader tiene un método read() y los que heredan
de OutputStream o Writer tiene un método write(). Estos métodos no se suelen usar
directamente, sino que están para que sean usados por otras clases, que proporcionan
una interfaz más útil. No es habitual que se utilice una única clase para crear un flujo.
Diferencia entre orientado a byte y orientado a char (unicode)
Orientados a byte
Tipos de InputStream
ByteArrayInputStream: desde un espacio de memoria.
StringBufferInputStream: desde un String.
FileInputStream: desde un fichero.
PipedInputStrem: desde una “tubería”.
SequenceInputStream: desde varios flujos.
FilterInputStream: clase abstracta útil para otras.
Tipos de OutputStream
ByteArray...
File...
Piped...
Filter...
Leer de un InputStream usando FilterInputStream (tipos de FilterInputStream)
DataInputStream: puede leer datos primitivos.
Buffered...: utiliza un buffer (espacio de almacenamiento intermedio) para la
lectura.
LineNumber...: añade numeración a las líneas.
PushBack...: no se utiliza.
Escribiendo a OutputStream usando ….
DataOutputStream: permite escribir tipos primitivos.
PrintStream: salida formateada
BufferedOutputStream: utiliza un buffer para evitar una escritura física cada vez
que se envía un fragmento de datos.
Readers & Writers
InputStream y OutputStream proveen funcionalidad para la entrada/salida orientada a
bytes
Estos dos son orientados a carácter.
Para transformar un flujo orientado a bytes en uno orientado a caracteres se utilizan dos
clases puente: InputStreamReader y OutputStreamWriter.
pf3
pf4

Vista previa parcial del texto

¡Descarga Entrada y Salida y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Entrada y salida.

Todo lo que hereda de InputStream o Reader tiene un método read() y los que heredan de OutputStream o Writer tiene un método write(). Estos métodos no se suelen usar directamente, sino que están para que sean usados por otras clases, que proporcionan una interfaz más útil. No es habitual que se utilice una única clase para crear un flujo.

Diferencia entre orientado a byte y orientado a char (unicode)

Orientados a byte

Tipos de InputStream

  • ByteArrayInputStream: desde un espacio de memoria.
  • StringBufferInputStream: desde un String.
  • FileInputStream: desde un fichero.
  • PipedInputStrem: desde una “tubería”.
  • SequenceInputStream: desde varios flujos.
  • FilterInputStream: clase abstracta útil para otras.

Tipos de OutputStream

  • ByteArray...
  • (^) File...
  • Piped...
  • Filter...

Leer de un InputStream usando FilterInputStream (tipos de FilterInputStream)

  • DataInputStream: puede leer datos primitivos.
  • Buffered...: utiliza un buffer (espacio de almacenamiento intermedio) para la lectura.
  • LineNumber...: añade numeración a las líneas.
  • PushBack...: no se utiliza.

Escribiendo a OutputStream usando ….

  • DataOutputStream: permite escribir tipos primitivos.
  • PrintStream: salida formateada
  • BufferedOutputStream: utiliza un buffer para evitar una escritura física cada vez que se envía un fragmento de datos.

Reader s & Writer s

InputStream y OutputStream proveen funcionalidad para la entrada/salida orientada a bytes

Estos dos son orientados a carácter.

Para transformar un flujo orientado a bytes en uno orientado a caracteres se utilizan dos clases puente: InputStreamReader y OutputStreamWriter.

Correspondencia entre los dos tipos

InputStream Reader

OutputStream Writer

FileInputStream FileReader

FileOutputStream FileWriter

StringBufferInputStream StringReader

(sin clase correspondiente) StringWriter

ByteArrayInputStream CharArrayReader

ByteArrayOutputStream CharArrayWriter

PipedInputStream PipedReader

PipedOutputStream PipedWriter

Modificando el comportamiento (similar a FilterOutputStream, pero no se hereda) Correspondencias:

FilterInputStream FilterReader

FilterOutputStream FilterWriter

BufferedInputStream BufferedReader (tiene readLine())

BufferedOutputStream BufferedWriter

DataInputStream Usar DataInputStream o BufferedReader si se necesita readLine()

PrintStream PrintWriter

LineNumberInputStream LineNumberReader

PushBackInputStream PushBackReader

Cuando queramos utilizar el método readLine() lo haremos con un objeto BufferedReader.

RandomAccessFile

Para archivos que contengan registros de tamaño conocido. Nos podemos mover de un registro a otro utilizando seek().

No tiene relación con InputStream o OutputStream, salvo que implementa las interfaces DataInput y DataOutput, que también implementan DataInputStream y DataOutputStream.

Tiene dos métodos propios que son getFilePointer() y seek(). En el constructor hay que decir si el archivo es abierto para lectura o para escritura y lectura (igual que en C “r” “rw”).

Usos típicos de flujos de E/S

  • BufferedReader entrada = new BufferedReader(new FileReader(“entrada.txt”));
    • readLine() devolverá null cuando se llegue al fin del fichero.
  • BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in)));
  • Entrada desde memoria (StringReader)

Ejemplo:

/write object/ ObjectOutputStream salida = new ObjectOutputStream(new FileOutputStream("prueba.dat")); salida.writeObject(p); salida.close(); /read object/ System.out.println("Recuperación de la pila"); ObjectInputStream entrada = new ObjectInputStream(new FileInputStream ("prueba.dat")); PilaDinamica q = (PilaDinamica)entrada.readObject(); entrada.close();

siendo p y q objetos que implementen la interfaz serializable, en este caso he sacado el ejemplo de una PilaDinamica..