Lectura y Escritura de Archivos en Programación

Clase 28 de 47Curso Práctico de C++

Resumen

¿Cómo leer archivos en un programa?

Leer archivos en un programa es fundamental para utilizar información previamente almacenada. Este proceso te permite acceder a datos guardados en un almacenamiento secundario, como es el caso de datos de inventarios en juegos o configuraciones de software. Para leer archivos de forma eficaz, recurrimos a una estructura específica dentro del lenguaje de programación.

¿Qué tipo de datos se utilizan para leer archivos?

Para leer archivos, utilizamos el tipo de dato Histroy. Este tipo de dato es similar a String, pero está específicamente diseñado para la entrada de datos (input), a diferencia de String que se utiliza para la salida de datos (output). Al leer un archivo, creamos una instancia Histroy para ingresar el contenido del archivo al sistema.

Histroy miArchivo;
miArchivo.initDesdeArchivo("data.txt")

¿Cómo asegurarse de que el archivo está abierto correctamente?

Es esencial comprobar si nuestro archivo se ha abierto correctamente para evitar errores durante la ejecución del programa. Esto se puede hacer utilizando métodos de verificación que permiten asegurarse de que no hubo problemas de acceso causados por antivirus u otros procesos del sistema.

if (!miArchivo.estaAbierto()) {
    imprimir("No se logró abrir el archivo. Verifique si hay un antivirus interfiriendo.");
}

¿Cómo leer líneas de un archivo?

Una vez que el archivo está abierto, procedemos a leer su contenido línea por línea. Esto se realiza utilizando la función getLine, que extrae caracteres hasta encontrar un punto y seguido.

String linea;
while (miArchivo.getLine(linea)) {
    imprimir(linea);
}

¿Cómo puedo utilizar lo leído del archivo?

Al leer un archivo, podemos implementar funcionalidades que mejoren la interactividad con el usuario o que mantengan su progreso en el juego. Por ejemplo, podríamos solicitar al usuario el nombre de un personaje, guardarlo en el archivo y después recuperarlo.

Solicitar y guardar una entrada del usuario

Podemos solicitar al usuario que ingrese su nombre o el de un personaje, y guardarlo en nuestro archivo para usos futuros.

String nombreDelJugador;
imprimir("Por favor, introduce el nombre de tu personaje:");
nombreDelJugador = obtenerInput();
miArchivo.escribirLinea(nombreDelJugador);

Recuperar un dato específico del archivo

Para recuperar información específica, leemos el archivo línea por línea hasta encontrar la línea deseada. Así, podemos extraer el nombre del personaje o cualquier otro dato particular que se haya guardado.

int lineaActual = 0;
String nombreDelHeroe;
while (miArchivo.getLine(linea)) {
    if (lineaActual == 2) {  // Suponiendo que el nombre del héroe está en la línea 3.
        nombreDelHeroe = linea;
        break;
    }
    lineaActual++;
}
imprimir("El nombre de tu héroe es: " + nombreDelHeroe);

Trabajar con archivos te permite extender las posibilidades de tus programas, guardar progreso de manera duradera y realizar ajustes personalizables. Dominar estas técnicas enriquecerá tus habilidades de programación y te permitirá crear aplicaciones más completas y funcionales. ¡Sigue explorando y aprendiendo para llevar tus conocimientos al siguiente nivel!