QFile:如何高效地从k读取k + L字节

3

我可以从QFile中读取整个文件到QByteArray中,并从第k个字节开始读取长度为L的字节。

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);
1个回答

6

使用 seek 方法获取要开始读取的文件位置。然后使用 read 方法从该点读取所需数量的字节。

例如:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接