You are on page 1of 5

Unidad VI Flujos y Archivos

Programacin Orientada a Objetos

VI. FLUJOS Y ARCHIVOS


6.1 Definicin.
Un archivo es un conjunto de datos estructurados en una coleccin de entidades elementales llamadas
registros, que son de igual tipo y constan a su vez de diferentes entidades de nivel ms bajo denominados
campos.

6.2 Clasificacin: Archivos de texto y binarios.


Un archivo binario es un archivo informtico que contiene informacin de cualquier tipo codificada en
sistema binario para el propsito de almacenamiento y procesamiento en computadoras.
Muchos formatos binarios contienen partes que pueden ser interpretados como texto. Un archivo binario
que slo contiene informacin de tipo textual sin informacin sobre el formato del mismo se dice que es un
archivo de texto plano.
Los trminos 'archivo binario' y 'archivo de texto' se diferencian de forma que los primeros no contienen
solamente texto.
Se piensa en los archivos binarios como una secuencia de bytes que es lo que implica que dgitos binarios
(bits) se agrupen de ocho en ocho.
Un archivo binario puede almacenar imgenes, sonido, versin comprimida de otros archivos, etc., en pocas
palabras, cualquier tipo de informacin.
Algunos archivos binarios tienen una cabecera, constituida por un bloque de metadatos que un programa
informtico usar para interpretar correctamente la informacin contenida. Por ejemplo, un archivo GIF
puede consistir en mltiples imgenes y la cabecera se usa para identificar y describir cada bloque de datos
de cada imagen.
Si el archivo binario no tiene cabecera se dice que es un archivo binario plano o de texto plano, compuestos
nicamente por texto sin formato, slo caracteres. Estos caracteres se pueden codificar de distintos modos
dependiendo de la lengua usada. Algunos de los sistemas de codificacin ms usados son: ASCII, Unicode ,
etc.
Se les conoce tambin como archivos de texto llano, o texto simple, por carecer de informacin destinada a
generar formatos (negritas, subrayado, cursivas, tamao, etc.) y tipos de letra (por ejemplo, Arial, Times,
Courier, etc.).
Las aplicaciones destinadas a la escritura y modificacin de archivos de texto se llaman editores de texto.

6.3 Operaciones bsicas y tipos de acceso.


Segn caractersticas del soporte empleado y el modo en que sean organizados los registros se consideran
dos tipos de acceso.
a) Acceso secuencial
1
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad VI Flujos y Archivos

Programacin Orientada a Objetos

b) Acceso Directo o Aleatorio


El acceso secuencial implica el acceso a un archivo segn el orden de almacenamiento de sus registros, uno
tras otro. El acceso directo es el acceso a un registro determinado sin que ello implique la consulta de los
registros precedentes.
La organizacin de un archivo define la forma en que se disponen sobre el soporte de almacenamiento de
ah que los tipos de organizaciones sean.
1
2

Organizacin Secuencial.
Organizacin Directa o aleatoria.

Operaciones Sobre Archivos


Las operaciones ms usadas durante un proceso de archivos son:
a)
b)
c)
d)

Consulta. Consiste en la recuperacin del contenido de un registro.


Modificacin. Alteracin de la informacin contenida en el registro.
Insercin. Agregar un nuevo registro al archivo.
Borrado. Supresin de un registro en el archivo.

Las operaciones sobre archivos se relacionan mediante programas en donde los archivos se identifican por
un nombre externo al que estn asociados.
La mayora de los programas ejecutan las siguientes funciones u operaciones cuando se manipulan archivos:
1

Creacin de archivos. Antes de que cualquier usuario pueda procesar un archivo es preciso que este
haya sido creado previamente. Esta es la primera operacin que se realiza, mediante la cual se
identifica la informacin correspondiente al archivo en el soporte de almacenamiento. En trminos
generales los datos que se requieren son.
A.
B.
C.
D.
E.

Nombre del dispositivo de almacenamiento o ruta de acceso.


Nombre del archivo
Tamao del archivo
Organizacin del archivo
Tamao del bloque o registro.

Apertura del archivo. Es la que permite al usuario tener disponible y acceder los archivos, los datos
requeridos generalmente son nombre del archivo, nombre del dispositivo de almacenamiento y
nombre del canal de comunicacin.

Transferencia de datos desde el archivo (lectura) o al archivo (escritura). Se llama lectura a la


recuperacin de los datos almacenados en el archivo para su manipulacin en memoria principal.

2
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad VI Flujos y Archivos

Programacin Orientada a Objetos

La transferencia de datos hacia el archivo se llama escritura y es el almacenamiento de los datos ya


procesados en memoria principal.
4

Cerrar el archivo. El propsito de esta operacin es permitir al usuario detener el uso del archivo.

Flujos en Java
Los Programas en Java realizan las operaciones de entrada y salida a travs de flujos, as se consigue
gestionar en forma similar la entrada y salida sobre dispositivos muy diferentes, como teclado, pantalla,
impresora, un buffer en memoria o un archivo en disco.
Las diferentes clases de flujos se encuentran agrupadas en el paquete java.io, y en la parte superior de esta
jerarqua destacan las clases:
InputStream, OutputStream, Reader, Writer y RandomAccessFile.
OutputStream, es una clase abstracta que trata flujos de salida de bytes.
InputStream, es una clase abstracta que trata flujos de entrada de bytes.
Writer, es una clase abstracta para escribir caracteres en flujos.
Reader, es una clase abstracta para leer caracteres.
RandomAccessFile, permite implementar archivos de acceso directo

Apertura de Archivos
Para crear, escribir o leer un archivo se requiere establecer un flujo a desde l; las clases que crean estos
flujos requieren una referencia a un objeto File o un nombre de archivo como argumento. Algunas de estas
clases son:
PRINCIPALES CLASES LECTORAS
FileInputStream(Acceso Secuencial). Hereda de InputStream, permite crear un flujo de lectura de bytes
desde un archivo. Define el mtodo read, que puede leer una secuencia de bytes. La lectura comienza desde
el principio del archivo, y una vez ledos, para volver a ser ledos es necesario cerrar el flujo y volverlo a abrir.
Ejem.
FileInputStream archivo = new FileInputStream (Datos.txt);
InputStreamReader. Es una clase general que convierte un flujo de bytes en un flujo de caracteres. Define el
mtodo read que puede leer un carcter o un arreglo de caracteres, se utiliza si sabemos que el flujo de
entrada es de caracteres de texto. Se debe pasar como un argumento al constructor la clase especifica ligada
al origen de los datos, en este caso FileInputStream.
InputStreamReader archivo = new ( InputStreamReader
3
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad VI Flujos y Archivos

Programacin Orientada a Objetos

( new FileInputStream (Datos.dat ) );


BufferedReader. Recibe un flujo de caracteres e implementa un buffer para poder leer lneas de texto.
Define el mtodo readLine que lee una lnea de texto. Esta clase se utiliza si se sabe que el archivo es de
texto y est escrito en lneas separadas por retornos de carro. Como es general ( no est ligada a ningn
dispositivo origen especfico) hay que pasarle como argumento un flujo de caracteres.
Hay dos formas de manejarlo y construir el objeto tipo BufferedReader:
Utilizar un objeto InputStreamReader creado sobre un objeto de tipo FileInputStream.
BufferedReader arch = new BufferedReader
(new InputStreamReader (
new FileInputStream (Datos.txt)));

Aceptar el tamao del buffer predefinido usando la claseFileReader.

BufferedReader arch = new BufferedReader (new FileReader(Datos.txt);


DataInputStream. Permite leer tipos de datos primitivos (enteros, reales, etc). Esta clase se utiliza si lo que
se esta leyendo son datos de tipo binario. Es general, por lo que hay que mandarle como argumento en su
constructor un objeto de tipo FileInputStream. Define mtodos como: readInt, readFloat, readBoolean, etc.
Ejem:
DataInputStream arch = new DataInputStream (new FileInputStream (Datos.dat));
FileReader(AS). Permite crear un flujo para la lectura de caracteres desde un archivo.
Ejem:
FileReader arch = new FileReader (Datos.txt))
RandomAccessFile. Permite el acceso directo (AD) a una determinada posicin dentro de un archivo, as
como la lectura y la escritura de datos en dicho archivo. El ltimo parmetro es el modo en que se crear el
flujo, puede ser r, para lectura o rw para lectura/escritura.
Ejem:
RandomAccessFile arch = new RandomAccessFile(Datos.dat, rw);

PRINCIPALES CLASES DE ESCRITURA


FileOutputStream. Esta es una clase especfica que escribe una secuencia de bytes a un archivo en disco.
Define el mtodo write que recibe como argumento a un arreglo de bits.
Para abrir un archivo de escritura se crea un objeto de tipo FileOutputStream pasando como argumento al
constructor el nombre del archivo.
4
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad VI Flujos y Archivos

Programacin Orientada a Objetos

Ejemplo 1:
FileOutputStream arch_sal = new FileOutputStream (Datos.dat);
**Nota: Si el archive existe y se abre, se destruye lo anterior.
Ejemplo 2:
File arch = new File (Datos.dat);
FileOutputStream arch_sal = new FileOutputStream (arch);
**Nota: Si el archive existe y se abre, se destruye lo anterior.
Ejemplo 3:
FileOutputStream arch_sal = new FileOutputStream (Datos.dat, var_boolean);
**Nota: Permite agregar datos a un archivo existente con el valor booleano true, o reemplazarlos con false,
como argumento.
OutputStreamWriter. Es una clase general que convierte un flujo de caracteres en un flujo de bytes. Define
el mtodo write para escribir a la salida un carcter o un arreglo de caracteres.
BufferedWriter. Escribe texto en un flujo de salida que acepte caracteres proporcionando un buffer para la
escritura de los caracteres o arreglos. Define el mtodo write para escribir una lnea de texto y el mtodo
newLine para los saltos de lnea. Esta clase se utiliza si se sabe que el archivo es de texto y est escrito en
lneas separadas por retornos de carro. Como es general ( no est ligada a ningn dispositivo origen
especfico) hay que pasarle como argumento un flujo de caracteres.
Una de las formas para manejar los archivos es utilizando
BufferedWriter arch_sal = new BufferedWriter ( new FileWriter(Datos.doc));
DataOutputStream. Permite escribir tipos primitivos de datos (enteros, reales, bolanos, etc.). Define
mtodos como writeInt, writeFloat, etc. y se utiliza si se desea generar un archivo de tipo binario. Esta clase
no est ligada a ningn destino de datos en particular por eso para escribir en archivo hay que mandar como
argumento en su consultor un objeto de tipo FileOutputStream
Ejemplo:
DataOutputStream arch = new DataOutputStream (new FileOutputStream (Datos.dat,true));

5
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

You might also like