Sei sulla pagina 1di 10

Manejo de Archivos Secuenciales en Java

Para el manejo de Archivos secuenciales de objetos en Java es necesario: 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 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

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) el archivo. en

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.

Ejemplo 1.1

Implementacin de la clase Libro

Implementar una clase entidad "Libro" que represente los libros de la biblioteca de ESIDE. Deber tener 4 atributos privados que sern el cdigo ISBN del libro (de tipo String), el titulo (de tipo String), el autor del libro (de tipo double) y si esta o no prestado (de tipo booleano). Como mtodos pblicos se debern definir: - Los dos constructores: por defecto y recibiendo los datos de los atributos. - Los consultores (get) y modificadores (set) para cada atributo. - mostrar, para visualizar los datos del libro. import java.io.*; public class Libro implements Serializable { private String codigo; private String titulo; private String autor; private boolean prestado; public Libro() { codigo = ""; titulo = ""; autor = ""; prestado = false; } public Libro(String c, String t, String a, boolean p) { codigo = c; titulo = t; autor = a; prestado = p; } public String getCodigo() { return codigo; }

public String getTitulo() { return titulo; } public String getAutor() { return autor; } public boolean getPrestado() { return prestado; } public void setCodigo(String c) { codigo = c; } public void setTitulo(String t) { titulo = t; } public void setAutor(String a) { autor = a; } public void setPrestado(boolean p) { prestado = p; } public void mostrar() { System.out.println(); System.out.println(" Codigo ISBN: " + codigo); System.out.println(" Titulo: " + titulo); System.out.println(" Autor:" + autor); if (prestado) { System.out.println(" Prestado: si"); } else { System.out.println(" Prestado: no"); } } }

Ejemplo 1.2

Creacin del archivo de libros

Haciendo uso de la clase "Libro", disear un programa para introducir desde el teclado los datos de los libros de la biblioteca de ESIDE y almacenarlos en un archivo cuyos componentes son de la clase Libro.

Ejemplo 1.3

Inspeccin del archivo de libros

Haciendo uso de la clase "Libro", disear un programa para visualizar todos los libros que hay en la biblioteca de ESIDE y que estan contenidos en el archivo LIBROS.DAT.

Ejemplo 1.4

Inspeccin del archivo de libros

Haciendo uso de la clase "Libro", disear un programa para visualizar todos los libros que hay en la biblioteca de ESIDE y que pertenecen a un determinado autor, el cual ha sido seleccionado previamente introduciendo su nombre desde el teclado. Si el autor no tiene ningn libro en la biblioteca se emitir un mensaje de esta situacin al usuario del programa.

Potrebbero piacerti anche