Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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);
like image 528
4pie0 Avatar asked Sep 20 '25 21:09

4pie0


1 Answers

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);
}
like image 108
Michael Choi Avatar answered Sep 22 '25 11:09

Michael Choi