
















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: programacion, Profesor: angel olaya, Carrera: Ingeniería en Informática, Universidad: UC3M
Tipo: Apuntes
1 / 24
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!

















Manuel Pereira González V1.
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen
Estructuras de Datos estudiadas: Tipos: Arrays, Listas, etc. Almacenadas en memoria principal (RAM) Rápida Volátil Tamaño Limitado Para tratar grandes volúmenes de información es necesario almacenarla en memoria secundaria (Disco Duro, CD-ROM, Disquete, Disco USB, etc.) Los datos agrupados en estructuras denominadas archivos o ficheros (File en inglés)
Un archivo o fichero es una colección de datos homogéneos almacenados en un soporte físico del computador que puede ser permanente o volátil. Datos homogéneos : Almacena colecciones de datos del mismo tipo (igual que arrays/vectores) Cada elemento almacenado en un fichero se denomina registro , que se compone de campos. Puede ser almacenado en diversos soportes (Disco duro, disquete, …)
Tipos de operaciones Operación de Creación Operación de Apertura. Varios modos: Sólo lectura Sólo escritura Lectura y Escritura Operaciones de lectura / escritura Operaciones de inserción / borrado Operaciones de renombrado / eliminación Operación de desplazamiento dentro de un fichero Operación de cierre
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen
Clasificación de los ficheros según la organización de los registros en memoria: Organización Secuencial : Registros almacenados consecutivamente en memoria según el orden lógico en que se han ido insertando. Organización Directa o Aleatoria : El orden físico de almacenamiento en memoria puede no coincidir con el orden en que han sido insertados. Organización Indexada. Dos ficheros: Fichero de datos: Información Fichero de índice: Contiene la posición de cada uno de los registros en el fichero de datos
Streams : Canales, flujos de datos o “tuberías”. Entrada (InputStream) o Salida (OutputStream).
Agrupados en el paquete java.io Dos jerarquías de clases independientes, una para lectura/escritura binaria ( bytes ) y otra para lectura/escritura de caracteres de texto ( char )
Streams de bytes ^ Streams de caracteres
Métodos básicos de Reader : int read() int read(char cbuf[]) int read(char cbuf[], int offset, int length) Métodos básicos de InputStream : int read() int read(byte cbuf[]) int read(byte cbuf[], int offset, int length)
Métodos básicos de Writer : int write(int c) int write(char cbuf[]) int write(char cbuf[], int offset, int length) Métodos básicos de OutputStream : int write(int c) int write(byte cbuf[]) int write(byte cbuf[], int offset, int length) Los Streams se abren automáticamente al crearlos, pero es necesario cerrarlos explícitamente llamando al método close() cuando se dejan de usar
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen
Leer/Escribir bytes en ficheros Streams de Entrada/Salida: FileInputStream / FileOutputStream
Leer/Escribir datos de tipos primitivos: int, long, float, etc. Streams de Entrada/Salida: DataInputStream / DataOutputStream
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen
Escribir / Leer cadenas de texto Se utilizan las clases Reader / Writer PrintWriter: Hereda de Writer, permite escribir texto en un OutputStream En el constructor recibe el OutputStream a utilizar Tiene métodos para escribir en forma de texto todos los tipos básicos y los Strings. Métodos duplicados para insertar retorno de carro al final del dato escrito (print / println) PrintStream es similar a PrintWriter, pero sus métodos están deprecados (la clase no, porque todavía se usa en System.out) -> Por defecto utilizar PrintWriter que es más moderna.
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen
Se utiliza la clase RandomAccessFile No está basada en el concepto de flujos o Streams. No deriva de InputStream/OutputStream ni Reader/Writer Permite leer y escribir sobre el fichero, no es necesario dos clases diferentes Necesario especificar el modo de acceso al construir un objeto de esta clase: sólo lectura o lectura/escritura Dispone de métodos específicos de desplazamiento como seek(long posicion) o skipBytes(int desplazamiento) para poder moverse de un registro a otro del fichero, o posicionarse directamente en una posición concreta del fichero.
Constructores: RandomAccessFile(File f, String modoAcceso) RandomAccessFile(String nombreArchivo, String modoAcceso) modoAcceso puede ser: “r” (sólo lectura) o “rw” (lectura y escritura). Métodos: void seek(long posicion): Sitúa el puntero de lectura/escritura en la posición indicada, desde el principio del fichero. long getFilePointer(): Devuelve la posición actual del puntero de lectura/escritura. int skipBytes(int desplazamiento): Desplaza el puntero desde la posición actual, el número de bytes indicado por desplazamiento long length(): Devuelve la longitud o tamaño del fichero en bytes
Introducción Conceptos Básicos de Ficheros Operaciones sobre ficheros Tipos de fichero Ficheros en Java Conceptos Básicos de Entrada/Salida Ficheros Binarios Ficheros de Tipos Primitivos Ficheros de Texto Ficheros de Acceso Aleatorio Serialización Algoritmos sobre Ficheros Resumen