QFile: how to efficiently read just bytes from k, to k+L

5.5k views Asked by At

I can read bytes from k to k+L from QFile reading first whole file into QByteArray

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

How to read just bytes from k, to k+L, efficiently ?

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

There are 1 answers

0
Michael Choi On BEST ANSWER

Use the seek method to get to the position in the file you want to start reading. Then use the read method to read as many bytes as you want from that point.

ie.

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