QFile: как эффективно читать только байты из k в k+L

Я могу читать байты от k до k + L из QFile, читая первый файл целиком в QByteArray

if (!file.open(QIODevice::ReadOnly))
    //...
    QByteArray blob = file.readAll();
    QByteArray bytes = blob.mid( k, L);

Как эффективно читать только байты из k в k + L?

if (!file.open(QIODevice::ReadOnly))
    //...
    QByteArray bytes = bytesFromFile( file, k, L);

person 4pie0    schedule 13.12.2013    source источник


Ответы (1)


Используйте метод seek, чтобы добраться до позиции в файле, которую вы хотите начать читать. Затем используйте метод чтения, чтобы прочитать столько байтов, сколько вы хотите с этой точки.

ie.

if (!file.open(QIODevice::ReadOnly)){
    file.seek(k);
    QByteArray bytes = file.read(L);
}
person Michael Choi    schedule 13.12.2013