Você está na página 1de 6

Manejo de Archivos Secuenciales en Java

Para el manejo de Archivos secuenciales de objetos en Java es necesario:


-

Importar una serie de clases del paquete java.io, por lo que antes de la
definicin de la clase programa ser necesario incluir la importacin de
dichas clases:
import java.io.* ;

El mtodo main, y cualquier otro mtodo que maneje algn archivo en un


programa, lanza la excepcin en caso de producirse algn error en el manejo
de dichos Archivos, para lo cual ser necesario especificarlo en la cabecera
de dicho mtodo:
public static void main (String[] args) throws Exception

Creacin de un archivo secuencial en Java


1. Crear un objeto de la clase FileOutputStream asociado al nombre del archivo fsico:
FileOutputStream Nom_Interno = new FileOutputStream("NomDelArchivo.DAT");
2. Para escribir en el archivo cada uno de sus componentes que son objetos de una
clase concreta deberemos utilizar:
Nom_Interno.write(bytes);
3. Al finalizar el proceso de creacin se debe cerrar el archivo:
Nom_Interno.close();
Mediante el mtodo de la clase FileOutputStream escribimos en archivos de
texto de forma secuencial.
Presenta el mtodo write() para la escritura en el archivo. Presenta varios
formatos:

int write( int C): Escribe el carcter en el archivo.


int write( byte A[] ): Escribe el contenido del vector A(bytes) en el
archivo.

int write( byte A[], int Off, int N ): Escribe el vector A (bytes) con una
longitud de N caracteres, comenzando desde la posicin Off.
int.- indica el retorno de un valor entero

Esquema de cmo Crear un Archivo en Java


{
Crear un objeto de la clase FileOutputStream asociado al nombre
del archivo fsico.
FileOutputStream Nom_Interno = new
FileOutputStream("NomFisicoArchivo.DAT",true);
// True .para que agregue registros
// False para que lo cree de nuevo
Hacer {
Solicitar los datos
Introducir los datos
Construir el Objeto con los datos
Escribir el objeto en el archivo
Nom_Interno.write (byte);
Preguntar si hay ms datos y responder
} Mientras (Hay mas datos)

Cerrar el archivo
Nom_Interno.close();

Lectura de un archivo secuencial en Java


1. Crear un objeto de la clase FileInputStream asociado al nombre del archivo fisico:
FileInputStream Nom_Interno = new FileInputStream("NomFisicoArchivo.DAT");
2. Para leer en el archivo cada uno de sus componentes de una clase concreta
deberemos utilizar:
Nom_Interno.read(bytes);
3. Al finalizar el proceso de creacin se debe cerrar el archivo:
Nom_Interno.close();

FileInputStream

Presenta el mtodo read() para la lectura del archivo. Este mtodo se puede invocar
de varias formas.
int read(): Devuelve el siguiente carcter del archivo.
int read( byte A[] ): Llena el vector a con los caracteres ledos del archivo. Devuelve la
longitud del vector que se ha llenado si se realiz con xito o 1 si no haba
suficientes caracteres en el archivo para llenar el vector.
int read( byte A[], int Off, int N ): Lee N caracteres del archivo, insertndolos en el
vector A.
Todos ellos devuelven -1 si se ha llegado al final del archivo (momento de cerrarle).

Esquema bsico de Lectura de un Archivo:

Crear un objeto de la clase FileInputStream asociado al nombre del


archivo fsico.
Crear un instancias del objeto de la clase ObjectInputStream asociado
al objeto anterior, es decir al archivo fsico.
Leer la primera lnea conjunta de bytes del archivo
Mientras no es el fin del archivo hacer
Tratamiento de los bytes en curso
...
Leer los siguiente bytes del archivo
fin_Mientras
Cerrar el archivo

Esquema de como Leer un archivo en Java

Crear un objeto de la clase FileInputStream asociado al nombre del archivo


fsico.
FileInputStream Nom_Interno =new
FileInputStream("NomFisicoArchivo.DAT");
Leer el primer conjunto de bytes del archivo
Nom_Interno.read ();
Mientras no es el fin del archivo hacer
While (Nom_Interno != null)
{
Tratamiento del los bytes en curso
...
Leer el siguiente conjuntos bytes del archivo
Nom_Interno.read();

}
fin_Mientras

Cerrar el archivo
Nom_Interno.close();

Lectura de un archivo texto en Java


Hay mltiples maneras de leer archivo lnea por lnea en Java

opcin:
FileReader
Clase que nos permite realizar lecturas de archivos de texto.
El FileReader ... es una clase de conveniencia para la lectura de archivos de
carcter... FileReader es para la lectura de flujos de caracteres. Para la
lectura de las corrientes de bytes
BASH(1

BufferedReader
Los programas de java realizan su entrada y salida a travs de flujos.
Podemos decir que flujo es una abstraccin que produce y consume
informacin.
Todos los flujos se comportan de la misma manera, aunque sean dispositivos.
BufferedReader: Es una clase del paquete java.io que permite manejar el
flujo de caracteres de entrada almacenado en memoria (bfer).
Con esta clase podemos leer u obtener los datos introducidos mediante el
teclado y tambin los datos que se encuentren en la primera lnea de un
archivo.
Es decir que si queremos utilizar un mtodo para escribir en consola tambin
lo podemos emplear para escribir en un archivo en el disco.
BufferedReader
Lee una lnea de texto hasta que encuentra un carcter de salto de lnea (\n)
y retorno de carro (\r).
BufferedReader proporciona un mtodo readLine que convierte cada lnea de
entrada en un String, y simplifica enormemente el proceso de archivo de
lectura
La clase BufferedReader se utiliza para leer datos de la corriente de entrada
de cada carcter, matriz o lneas de manera eficiente.
BufferedReader (Reader) - Este constructor est utilizando el tamao de
bfer predeterminado.

La clase BufferedReader utiliza el tamao de bfer predeterminado de 8.192


caracteres para la lectura de los datos en el buffer.
BufferedReader (Reader, int sz) - Aqu segundo argumento tiene el tamao
del bfer como parmetro.
Aqu est el ejemplo del uso de la clase BufferedReader:
BufferedReader = New BufferedReader (nuevo FileReader ("miarchvo.txt"));
Si no se utiliza el almacenamiento en bfer, entonces el rendimiento de las
aplicaciones ser lento.

Debido a que el comportamiento, es muy comn para escribir un bucle while


que itera sobre un BufferedReader como se muestra en el ejemplo anterior, y
de nuevo aqu:
while ((line = BufferedReader.readLine ())! = null)
Una vez ms, el mtodo readLine BufferedReader bien devuelve una cadena
o una referencia nula, y es un mtodo til de gran uso en la lectura de
entrada de texto como este.

Você também pode gostar