3

最初のファイル全体を QByteArray に読み込む QFile から k から 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);
4

1 に答える 1

6

seek メソッドを使用して、読み取りを開始するファイル内の位置に移動します。次に、read メソッドを使用して、その時点から必要な数のバイトを読み取ります。

すなわち。

if (!file.open(QIODevice::ReadOnly)){
    file.seek(k);
    QByteArray bytes = file.read(L);
}
于 2013-12-13T04:56:06.457 に答える