Tema 1: Manejo de Ficheros y Acceso a Datos

1. Conceptos Fundamentales

Para entender la gestión de ficheros en Java, es clave distinguir entre los conceptos base de la asignatura:

  • Dato: Representación simbólica de un hecho, objeto o situación, sin significado por sí mismo hasta que es interpretado.
  • Información: Conjunto de datos procesados, organizados y estructurados con un contexto determinado, de modo que adquieren significado útil para la toma de decisiones.
Fórmulas Clave de la Asignatura
SOFTWARE = DATOS + INSTRUCCIONES + DOCUMENTACIÓN INFORMACIÓN = DATOS + SIGNIFICADO

2. Serialización y Deserialización

  • Serializar: Proceso de volcar o escribir en un fichero u origen de datos los objetos instanciados en memoria por el programa.
  • Deserializar: Proceso inverso, consistente en leer datos de un fichero para reconstruir los objetos correspondientes en memoria Java.

3. Clasificación de Ficheros

3.1. Según el tipo de contenido

  • Ficheros de texto:

    Contienen caracteres legibles directamente por el usuario en programas de texto plano (codificados en ASCII, UTF-8, etc.).

    Ejemplos: .txt, .csv, .json, .xml, .html.

    Clases en Java: Se gestionan mediante clases como FileReader / FileWriter o BufferedReader / BufferedWriter.

  • Ficheros binarios:

    Contienen datos en el formato interno del ordenador (secuencias de bytes) y no son legibles directamente como texto plano.

    Ejemplos: .dat, .bin, imágenes (.jpg, .png), ejecutables o bytecode (.exe, .class).

    Clases en Java: Se leen y escriben mediante FileInputStream / FileOutputStream o DataInputStream / DataOutputStream.

    Ventaja: Ocupan menos espacio en disco y se procesan sustancialmente más rápido.

3.2. Según el modo de acceso

  • Acceso Secuencial:

    Los datos se leen o escriben de forma continua, uno detrás de otro desde el inicio del archivo hasta el final, sin posibilidad de saltar arbitrariamente a una posición concreta.

    Ejemplos: Ficheros de texto convencionales, flujos de red (streams).

  • Acceso Aleatorio (o Directo):

    Permite posicionar un puntero de lectura/escritura en cualquier byte especifico del fichero (mediante métodos como seek()) y operar en esa ubicación directamente.

    Ejemplo en Java: La clase RandomAccessFile, muy utilizada en motores de bases de datos para indexar y localizar registros ágilmente.

4. Metadatos (Metadata)

Los metadatos son la información que describe las características de un fichero o de su contenido, pero que no forma parte del contenido propiamente dicho. Suelen almacenarse en la cabecera del archivo.

Ejemplo: En un correo electrónico, los metadatos incluyen la hora de envío, la dirección IP de origen y las direcciones del remitente/destinatario. En el sistema de archivos de Java (clase File), corresponden a propiedades como el nombre, la ruta absoluta/relativa, los permisos de lectura/escritura o el tamaño en bytes.

5. Recuentos y Referencias Útiles

Para la manipulación básica de rutas y archivos en el sistema operativo, Java proporciona la clase java.io.File, cuyo constructor reserva espacio de memoria y cuenta con tres firmas de sobrecarga comunes.

🔗 Recurso de apoyo recomendado: W3Schools - Java Files