Lectura de archivos Qt
2. Qt5 agregó la clase QFileDevice. Las clases involucradas a lo largo del camino y sus usos se describen brevemente a continuación:
- QFlie: accede a archivos locales o recursos integrados;
- QTemporaryFile: crea y accede a archivos temporales del sistema de archivos local ;
p>
- QBuffer: lee y escribe QByteArray;
- QProcess: ejecuta programas externos y maneja la comunicación entre procesos;
- QTcpSocket : Transmisión de datos de red TCP;
- QUdpSocket: transmite mensajes UDP;
- QSslSocket: utiliza SSL/TLS para transmitir datos;
- QFileDevice: un nuevo clase que proporciona información sobre la operación del archivo.
2.
3. En este caso, QProcess, QTcpSocket, QUdpSoctet y QSslSocket son todos dispositivos de acceso secuencial. El llamado "acceso secuencial" significa que solo se puede acceder a sus datos una vez: de principio a fin, desde el primer byte hasta el último byte, y no se puede volver a leer el último byte. QFile, QTemporaryFile y QBuffer son acceso aleatorio; dispositivo, puede acceder a cualquier ubicación tantas veces como desee, o utilizar QFile, QTemporaryFile y QBuffer para acceder a cualquier dispositivo de acceso aleatorio. posición cualquier número de veces, también puede utilizar la función QIODevice::seek() para reubicar el puntero de posición de acceso al archivo.
4. QFile proporciona principalmente diversas operaciones relacionadas con archivos, como abrir archivos, cerrar archivos, actualizar archivos, etc. Podemos usar la clase QDataStream o QTextStream para leer y escribir archivos, o podemos usar las funciones read(), readLine(), readAll() y write() proporcionadas por QIODevice. Vale la pena señalar que la información sobre el archivo en sí, como el nombre del archivo, el nombre del directorio donde se encuentra el archivo, etc., se obtiene a través de QFileInfo en lugar de analizar la cadena de ruta del archivo por sí sola.
5. Por ejemplo, al abrir un archivo, necesita parámetros para especificar el modo de apertura del archivo:
Descripción del valor constante
QIODevice::NotOpen. 0x0000 El dispositivo no está abierto Abierto. QIODevice::ReadOnly 0x0001 El dispositivo está abierto para lectura.
QIODevice::WriteOnly 0x0002 El dispositivo está abierto para escritura.
QIODevice:::ReadWrite ReadOnly 0x0002 El dispositivo está abierto para escritura.
QIODevice:::ReadWrite ReadOnly 0x0002 El dispositivo está abierto para escritura. ReadWrite Sólo lectura | Sólo escritura El dispositivo está abierto para lectura y escritura.
QIODevice::Append 0x0004 El dispositivo se abre en modo agregar, por lo que todos los datos se escribirán al final del archivo.
QIODevice::Truncate 0x0008 Si es posible, trunca el dispositivo antes de abrirlo. Se perderá todo el contenido anterior del dispositivo.
QIODevice::Text 0x0010 Al leer, los terminadores de línea se convirtieron a "\n". Al escribir, los terminadores de línea se convierten a la codificación local; por ejemplo, los terminadores de línea de Win32 son "\r\n".
QIODevice::Unbuffered 0x0020 Se han omitido todos los buffers en el dispositivo. Se omiten todos los buffers del dispositivo.