大きなファイルをダウンロードするアプリを開発しています。昨年は問題なく動作していましたが、特定の URL で奇妙な動作が発生していることに気付きました。
これが私のコードです:
while (bufferLength = inputStream.read(buffer) > -1) {
fileOutput.write(buffer, 0, bufferLength);
downloadedBytes += bufferLength;
}
その特定の URL では、ダウンロードの途中で inputStream.read(buffer) が -1 を返しているようです。ダウンロードを再開すると、もう一度実行されますが、別の位置で実行されます。例外はありません。サーバー側で何が起こっているのですか?接続はリセットされていますか? その場合、例外を受け取るべきではありませんか?