Documentos de Académico
Documentos de Profesional
Documentos de Cultura
02a TeoriaFicheros
02a TeoriaFicheros
Un fichero es un conjunto de datos homogneos almacenados en un soporte externo (disco duro, CD, pendrive, ...) permanente. Segn su contenido se pueden distinguir distintos tipos de ficheros . Ficheros de texto, en los cuales sus componentes o elementos son caracteres dispuestos en lineas. Ficheros de registros, los mas clsicos en informtica, en los cuales los componentes son registros, los cuales son un conjunto de datos llamados campos, pertenecientes a una misma entidad. Ficheros de objetos, donde los componentes del fichero son objetos de una misma clase. Segn su sistema de organizacin y mtodo de acceso a sus componentes se clasifican en: Ficheros Secuenciales, en la que sus componentes se almacenan de forma consecutiva o secuencial, y que para acceder a un componente hay que procesar a todos los componentes que le preceden en dicho fichero. Ficheros Directos/Aleatorios/Relativos, este tipo de ficheros permiten el acceso a un componente en base a la posicin relativa que ocupa dicho componente en el fichero. Ficheros Indexados, este tipo de ficheros permiten el acceso a sus componentes en base a una clave que permite diferenciar a cada componente del resto. Atendiendo a su relacin con el programa se clasifican en: Ficheros de Entrada o lectura, aportan o envan informacin al programa. Ficheros de Salida o escritura, reciben informacin desde el programa. Ficheros de Entrada /Salida, intercambian informacin con el programa en ambos sentidos.
Crear un objeto de la clase FileInputStream asociado al nombre del fichero fisico. FileInputStream NombreObjetoFicheroFisico = new FileInputStream("NombreFisicoDelFichero.DAT"); Crear un objeto de la clase ObjectInputStream asociado al objeto anterior, es decir al fichero fisico. ObjectInputStream NombreObjetoFicheroLogico = new ObjectInputStream(NombreObjetoFicheroFisico); Leer el primer objeto del fichero ClaseDelObjeto VariableObjeto = (ClaseDelObjeto) NombreObjetoFicheroLogico.readObject(); Mientras no es el fin del fichero hacer while (VariableObjeto != null) { Tratamiento del objeto en curso ... Leer el siguiente objeto del fichero VariableObjeto = (ClaseDelObjeto)NombreObjetoFicheroLogico.readObject();
} fin_Mientras
Ejemplo 1.1
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
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 fichero cuyos componentes son de la clase Libro.
Ejemplo 1.3
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 fichero LIBROS.DAT.
Ejemplo 1.4
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.