I/O: Leer y Escibir

Los streams de proceso realizan alguna suerte de operaci�n, como almacenamiento o codificaci�n de caracteres, mientras leen o escriben. Al igual que de los stream de profundidad, java.io contiene parejas de streams. Uno que realiza una operaci�n particular durante la lectura y otro que realiza la misma operaci�n (o la inversa) durante la escritura. Esta tabla nos muestra los streams de proceso de java.io:

Proceso Stream de Caracteres Streams de Bytes
Almacenamiento BufferedReader,
BufferedWriter
BufferedInputStream,
BufferedOutputStream
Filtrado FilterReader,
FilterWriter
FilterInputStream,
FilterOutputStream
Conversi�n entre
Bytes y Caracteres
InputStreamReader,
OutputStreamWriter
Concatenaci�n SequenceInputStream
Serializaci�n de Objetos ObjectInputStream,
ObjectOutputStream
Conversi�n de Datos DataInputStream,
DataOutputStream
Contaje LineNumberReader LineNumberInputStream
Exploraci�n PushbackReader PushbackInputStream
Impresi�n PrintWriter PrintStream

Observa que muchas veces, java.io contiene streams de caracteres y de bytes que realizan el mismo proceso pero para diferentes tipos de datos.

BufferedReader y BufferedWriter BufferedInputStream y BufferedOutputStream
Almacenan los datos en buffers mientras leen o escriben, por lo tanto reduciendo as� el n�mero de accesos requeridos a la fuente de datos original. Los streams con buffer normalmente son m�s eficientes que los que no lo utilizan.
FilterReader y FilterWriter FilterInputStream y FilterOutputStream
Clases abstractas, como sus padres. Definen el interface para filtros de streams, que filtran los datos que est�n siendo le�dos o escritos.

Trabajar con Streams Filtrados m�s adelante en esta lecci�n, nos mostrar� como usar filtros de streams y como implementar el nuestro propio.

InputStreamReader y OutputStreamWriter
Una pareja de reader y writer que realiza un puente entre streams de bytes y streams de caracteres. Un InputStreamReader lee bytes desde un InputStream y los convierte a caracteres usando la decodificaci�n de caracteres por defecto o una decodificaci�n de caracteres especificada por su nombre.

De forma similar, un OutputStreamWriter convierte caracteres a bytes usando una decodificaci�n de caracteres por defecto o una decodificaci�n de caracteres especificada por su nombre y luego escribe estos bytes en un OutputStream.

Podemos aprender el nombre de la codificaci�n de caracteres por defecto llamando a System.getProperty("file.encoding").

SequenceInputStream
Concatena varios streams de entrada en un s�lo stream de entrada.

C�mo Contanerar Ficheros tiene un peque�o ejemplo de esta clase.

ObjectInputStream y ObjectOutputStream
Se usa para serializar objetos. Puedes ver Serializaci�n de Objetos.
DataInputStream y DataOutputStream
Lee o escribir tipos de datos primitivos de Java de una forma independiente de la m�quina.

C�mo usar DataInputStream y DataOutputStream nos ense�a un ejemplo de uso de estos dos streams.

LineNumberReader y LineNumberInputStream
Sigue la pista del n�mero de l�nea mientras lee.
PushbackReader y PushbackInputStream
Dos streams cada uno con un caracter (o byte) de menos en el buffer.

Algunas veces, cuando se leen datos desde un stream, encontraremos �til explorar el siguiente �tem del stream para decidir que hacer luego. Sin embargo, si lo exploramos, necesitaremos ponerlo de nuevo en su sitio para que pueda ser le�do y procesado normalmente.

PrintWriter y PrintStream
Contienen m�todos de impresi�n de conveniencia. Estos son streams sencillos para escribir, por eso frecuentemente veremos otros streams envueltos en uno de estos.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO