Red de conocimientos sobre prescripción popular - Cuidado de la salud en otoño - ¿Cuál es una buena manera de administrar archivos binarios?

¿Cuál es una buena manera de administrar archivos binarios?

El método para leer rápidamente archivos binarios es el siguiente:

1.

Hay dos formas de abrir un archivo. La primera forma es utilizar el constructor de la clase fstream. fstream file("test.dat", IOs_base::in | IOs_base::out | IOs_base::app);

Funcionalidad abierta. fstream file; file.open("test.dat ", IOs_base::in | IOs_base::out | IOs_base::app);

De esta manera puede abrir un archivo de lectura y escritura. Si el archivo no existe, se creará un archivo nuevo y se abrirá en modo lectura-escritura. Lo que hay que tener en cuenta aquí es que si el archivo no existe, el segundo parámetro de la función abierta debe contener ios_base::out|ios_base::app; de lo contrario, el archivo no se podrá crear correctamente.

2. Escribe un archivo.

La operación de escritura de archivos es avanzada; de lo contrario, leer un archivo vacío no tendrá sentido.

Dado que estás escribiendo un archivo binario, puedes escribir un valor entero en el archivo. Solo se puede utilizar escritura para escribir caracteres binarios.

Función. Pero el prototipo de la función de escritura es escribir (const char * ch, int size). El primer parámetro es de tipo char *

, por lo que el tipo int debe convertirse al tipo char *. La transición aquí me molestó durante días, pero finalmente lo descubrí. El código es el siguiente. Temperatura interna; archivo . write((char *)( amp; temp), sizeof(temp));

3.

Podrás escribir archivos y leer archivos será mucho más fácil. Leer un archivo requiere la función Leer. Sus parámetros son similares a escribir

, leer (const char * ch, int size). Leer contenido en variables de tipo int también implica problemas de conversión de tipos. Como escribir un archivo. int readIntfile . read((char( amp; readInt), sizeof(readInt)); De esta manera, el valor int del archivo se lee en la variable int.

ReadInt gana.

4. Puntero de archivo.

En el proceso de lectura y escritura de archivos, a menudo es necesario leer el archivo de forma selectiva. Esto requiere el uso de dos funciones en las clases seekg y fstream. , uno es el puntero para leer el archivo.

Los archivos tellg y tellp se utilizan para obtener la posición del puntero. De manera similar, las dos funciones seekg y seekp se utilizan para mover los dos archivos. función Los parámetros de estas dos funciones son los mismos Primero, explique varios tipos de enumeración:

IOS_BASE::BEG-La posición inicial del archivo IOS_BASE::Cur-La posición actual del archivo IOS_BASE::END. - La posición final del archivo Tomamos seekg como ejemplo para ilustrar cómo mover el puntero: file SEEKG(3) - El puntero se mueve a la posición del tercer carácter file.seekg(ios_base::beg).

-El puntero se mueve a file.seekg(IOs_base::end)-El puntero se mueve a file.seekg(-3,IOs_base::cur)-

La posición actual del puntero avanza tres caracteres en el archivo .seekg (3, IOs_base::cur) - La posición actual del puntero retrocede tres caracteres file.seekg (3, file . tellg()) - La posición actual del puntero retrocede tres caracteres seekg(. file . tellg( ) 3)-La posición actual del puntero retrocede tres caracteres.

5. No olvides cerrar el archivo después de completar la operación.