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:
- Crear un fichero
- Se puede crear vacío o con contenido inicial.
- Ejemplo conceptual: “crear archivo
datos.txtcon contenido inicial ‘Hola Mundo’”.
- Abrir un fichero
- Preparar el fichero para leer o escribir.
- Algunos sistemas diferencian modos: solo lectura, solo escritura, lectura/escritura.
- 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).
- 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.
- Cerrar un fichero
- Libera los recursos del sistema y asegura que los datos queden almacenados correctamente.
Formatos y usos comunes
| Formato | Uso principal | Ventaja | Desventaja |
|---|---|---|---|
.txt | Notas, logs, configuración simple | Muy simple y universal | No estructurado, difícil de procesar automáticamente |
.csv | Datos tabulares (Excel, bases de datos) | Fácil de importar/exportar | No soporta jerarquía ni tipos complejos |
.json | Intercambio de datos entre aplicaciones | Estructurado, legible | Más pesado que CSV |
.xml | Configuración, interoperabilidad | Estándar, soporta jerarquía | Verboso, más lento de parsear |
| Binario | Multimedia, imágenes, audio, video | Eficiente en almacenamiento | Necesita 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
- Crear archivo
usuarios.jsonsi no existe. - Abrir el archivo para lectura.
- Cargar los datos existentes (lista de usuarios).
- Añadir un nuevo usuario a la lista.
- Abrir el archivo para escritura y guardar los datos actualizados.
- Cerrar el archivo.