Saltar al contenido principal

Ficheros locales

Los ficheros son la forma más básica de almacenar datos de manera persistente en un sistema informático. Representan información guardada en el disco, que puede ser de dos tipos:

  • Texto: archivos .txt, .csv, .json, etc.
  • Binaria: imágenes, audio, vídeo, archivos comprimidos, etc.

Trabajar con ficheros permite que los datos sobrevivan al cierre de la aplicación y puedan ser compartidos, procesados o utilizados por otras aplicaciones.

Tipos de ficheros

Ficheros de texto plano

  • Contienen información legible por humanos.
  • Ejemplos: .txt, .md.
  • Ventaja: sencillos de leer/escribir, fáciles de versionar y depurar.
  • Desventaja: no son eficientes para grandes volúmenes de datos ni para consultas complejas.

Ficheros estructurados o semi-estructurados

  • Contienen datos con cierto esquema: .json, .xml, .csv.
  • Facilitan el intercambio de datos entre aplicaciones y lenguajes distintos.

Ejemplo de un JSON:

{
"id": 1,
"nombre": "Carlos",
"email": "carlos@example.com"
}

Ficheros binarios

  • Contienen datos en formato no legible directamente.
  • Ejemplos: imágenes (.png, .jpg, .webp), audio (.mp3), vídeo (.mp4, .mkv).
  • Ventaja: compactos y eficientes en espacio.
  • Requieren librerías específicas para su manipulación.

Operaciones básicas con ficheros

Independientemente del lenguaje, trabajar con ficheros implica cinco operaciones fundamentales:

  1. Crear un fichero
    • Se puede crear vacío o con contenido inicial.
    • Ejemplo conceptual: “crear archivo datos.txt con contenido inicial ‘Hola Mundo’”.
  2. Abrir un fichero
    • Preparar el fichero para leer o escribir.
    • Algunos sistemas diferencian modos: solo lectura, solo escritura, lectura/escritura.
  3. Leer datos de un fichero
    • Leer línea a línea o todo el contenido de golpe.
    • Leer fragmentos si el fichero es muy grande (streaming).
  4. Escribir datos en un fichero
    • Sobrescribir el contenido existente o añadir al final (append).
    • Es importante cerrar correctamente el fichero para asegurar que los datos se guarden.
  5. Cerrar un fichero
    • Libera los recursos del sistema y asegura que los datos queden almacenados correctamente.

Formatos y usos comunes

FormatoUso principalVentajaDesventaja
.txtNotas, logs, configuración simpleMuy simple y universalNo estructurado, difícil de procesar automáticamente
.csvDatos tabulares (Excel, bases de datos)Fácil de importar/exportarNo soporta jerarquía ni tipos complejos
.jsonIntercambio de datos entre aplicacionesEstructurado, legibleMás pesado que CSV
.xmlConfiguración, interoperabilidadEstándar, soporta jerarquíaVerboso, más lento de parsear
BinarioMultimedia, imágenes, audio, videoEficiente en almacenamientoNecesita librerías para manipular

Buenas prácticas al trabajar con ficheros

  • Validar la existencia del fichero antes de leer (file_exists).
  • Controlar permisos de lectura/escritura (is_readable, is_writable).
  • Evitar sobreescribir datos importantes sin copia de seguridad.
  • Cerrar siempre el fichero después de leer o escribir.
  • Evitar leer ficheros enormes en memoria; usar técnicas de streaming.
  • Separar datos y lógica de negocio: mantener los ficheros como almacenamiento y no mezclarlos con código de la aplicación.

Seguridad al trabajar con ficheros

  • Nunca confiar en rutas de ficheros proporcionadas por el usuario: validar y sanear entradas.
  • Evitar escribir en directorios sensibles del sistema.
  • Si los ficheros contienen información sensible, cifrar su contenido.
  • Registrar accesos y modificaciones importantes para auditoría.

Ejemplo conceptual de flujo de trabajo con ficheros

  1. Crear archivo usuarios.json si no existe.
  2. Abrir el archivo para lectura.
  3. Cargar los datos existentes (lista de usuarios).
  4. Añadir un nuevo usuario a la lista.
  5. Abrir el archivo para escritura y guardar los datos actualizados.
  6. Cerrar el archivo.