I/O: Leer y Escibir

Frecuentemente los programas necesitan traer informaci�n desde una fuente externa o enviar informaci�n a un fuente externa. La informaci�n pueder est�r en cualquier parte, en un fichero, en disco, en alg�n lugar de la red, en memoria o en otro programa. Tambi�n puede ser de cualquier tipo: objetos, caracteres, im�genes o sonidos.

Para traer la informaci�n, un programa abre un stream sobre una fuente de informaci�n (un fichero, memoria, un socket) y lee la informaci�n serialmente, de esta forma:

Similarmente, un programa puede enviar informaci�n a un destino externo abriendo un stream sobre un destino y escribiendo la informaci�n serialmente, de esta forma:

No importa de donde venga o donde vaya la informaci�n y tampoco importa el tipo de los datos que est�n siendo le�dos o escritos, los algoritmos para leer y escribir son casi siempre los mismos.

Leer Escribir
abrir un stream
mientras haya informaci�n
    leer informaci�n
cerrar el stream
abrir un stream
mientras haya informaci�n
    escribir informaci�n
cerrar el stream

El paquete java.io contiene una colecci�n de clases stream que soportan estos algoritmos para leer y escribir. Estas clases est�n divididas en dos �rboles bas�ndose en los tipos de datos (caracteres o bytes) sobre los que opera.

Sin embargo, algunas veces es m�s conveniente agrupar las clases bas�ndose en su prop�sito en vez en los tipos de datos que lee o escribe. As�, podemos agrupar los streams dependiendo de si leen u escriben lados en las "profundidades" o procesan la inormaci�n que est� siendo le�da o escrita.

.Introducci�n a los Streams I/O

Esta secci�n describe todos los tipos de streams y muestra las clases del paquete java.io que los implementan de acuerdo a la divisi�n del �rbol de clases.

Luego, como mucha gente piensa en t�rminos de lo que quieren hacer en vez de lo que est�n haciendo, proporcionamos dos secciones que nos muestran c�mo usar los streams seleccionados bas�ndonos en su prop�sito.

.Serializaci�n de Objetos

Dos de los streams de bytes, ObjectInputStream y ObjectOutputStream, son streams especializados que nos permiten leer y escribir objetos.

Leer y escribir objetos es un proceso que se conoce como serializaci�n de objetos. La serializaci�n de objetos tiene muchos usos, incluyeno la invocaci�n remota de m�todos (RMI).

Adem�s de los streams de objetos, java.io tiene otras clases e interfaces que definen el API de las clases de ayuda que realizan serializaci�n para sus ejemplares.

.Trabajar con Ficheros de Acceso Aleatorio

Los streams de caracteres y de bytes son streams de acceso secuencial. Por el contrario, RandomAccessFile nos permite acceder aleatoriamente a los contenidos de un fichero.

Esta secci�n nos habla sobre c�mo suar los ficheros de acceso aleatorio. Tambi�n proporciona una secci�n especial que muestra como escribir filtros para objetos que implementan los interfaces DataInput y DataOutput.

Los filtros implementados de esta forma son m�s flexibles que los filtros de streams regulares porque pueden usarse sobre ficheros de acceso aleatorio y algunos ficheros secuenciales.

.Y el Resto...

Esta secci�n presenta brevemente las clases restantes del paquete java.io.

Consideraci�n de Seguridad:

Algunas operaciones de I/O est�n sujetas a la aprovaci�n del controlador de seguridad actual. Los programas de ejemplo contenidos en estas lecciones son aplicaciones solitarias, que por defecto no tienen controlador de seguridad. Este c�digo podr�a no funcionar en un applet, dependiendo del navegador o visualizador en el que se est� ejecutando.

COMPARTE ESTE ARTÍCULO

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

SIGUIENTE ARTÍCULO