a を実行して、割り当てられたQNetworkRequest
を取得したとしますQNetworkReply
。大きなファイル (1 GB など) の場合、4k バイト配列バッファーを作成し、4k x 4k のデータをその配列に読み取り、同時に開いているファイルストリームに書き込むにはどうすればよいですか? たとえば、同等の C# コードは次のようになります (私は Qt ではなく C# に精通しています)。
public static void CopyStream(Stream input, Stream output)
{
// input is web stream, output is filestream
byte[] buffer = new byte[4096];
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, read);
}
}
- - 編集
実際に私がやろうとしているのは、アプリケーションを実行するたびにダウンロードを再開する機能です。ダウンロードを再開しようとするたびに、range
ヘッダーを設定しQNetworkRequest
て残りのデータを取得するだけなので、データを一度にではなく段階的に書き込む必要があります。