Los streams de profundidad "sink" leen o escriben datos desde sitios especializados como strings, ficheros o tuber�as (pipes). T�picamente, cada reader o inputstream est� pensado para un tipo espec�fico de fuente de entrada, java.io contiene un writer o un outputstream paralelo que pueden crearlo. La siguiente tabla nos muestra los streams de datos sink de java.io:.
Tipo de Sink | Streams de Caracteres | Streams de Bytes |
---|---|---|
Memory | CharArrayReader, CharArrayWriter, StringReader, StringWriter |
ByteArrayInputStream, ByteArrayOutputStream, StringBufferInputStream |
Pipe | PipedReader, PipedWriter |
PipedInputStream, PipedOutputStream |
File | FileReader, FileWriter |
FileInputStream, FileOutputStream |
Observa que tanto el grupo de streams de caracteres como el bytes contienen parejas paralelas que operan con el tipo de sinks de datos.
Estos se describen luego..
-
CharArrayReader y CharArrayWriter
ByteArrayInputStream y ByteArrayOutputStream - Estos streams se usan para leer y escribir desde memoria. Podemos crear estos streams sobre un array existente y luego usara los m�todos de lectura y escritura para leer y escribir desde el array.
- FileReader y FileWriter
FileInputStream y FileOutputStream - Colectivamente llamados streams de ficheros, estos streams se usan para leer y escribir ficheros del sistema de ficheros nativo.
Como usar Streams de Ficheros tiene un ejemplo que usa FileReader y FileWriter para copiar el contenido de un fichror a otro.
- PipedReader y PipedWriter
PipedInputStream y PipedOutputStream - Implementan los componentes de entrada y salida de una tuber�a.
Las tuber�as (Pipes) se usan para canalizar la salida de un programa (o thread) hacia la entrada de otro programa (o thread).
Puedes ver PipedReader y PipedWriter en acci�n en la p�gina Como usar Pipe Streams.
- StringReader y StringWriter
StringBufferInputStream -
Se usa StringReader para leer caracteres desde un String que reside en memoria. Se usa StringWriter para escribir en un String.
StringWriter recoge los caracteres escritos en un StringBuffer, que puede ser convertido en un String. StringBufferInputStream es similar a StringReader, excepto en que lee bytes desde un StringBuffer.