Cómo leer archivos binarios rápidamente
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 puedes abrir una lectura- escribir archivo. 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 *)(& 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(& 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 las funciones seekg y seekp. 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 el archivo. de estas dos funciones son iguales Primero, explique varios tipos de enumeración:
IOS _ BASE::BEG-posición inicial del archivo IOS _BASE::Cur-file Posición actual IOS _ BASE::END - La posición final. del archivo. Tomemos 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). . seekg(IOs_base::end)-El puntero se mueve al archivo.seekg(-3, IOs_base::cur)-
La posición actual del puntero avanza tres caracteres en el archivo seekg (3, IOs. _ base::cur) - Mueve la posición actual del puntero hacia atrás tres caracteres file. seekg (3, file . tellg ()) - Mueve la posición actual del puntero hacia atrás tres caracteres file. 3)-Mueve la posición actual del puntero tres caracteres hacia atrás
5. No olvides cerrar el archivo después de completar la operación.