サーバーから非常に大きなファイル(〜2GB)をダウンロードするプログラムの作成に取り組んでいます。部分的に終了したダウンロードを再開できるようにプログラムを作成しましたが、
悪いインターネット接続をシミュレートするために、ダウンロードの途中でイーサネットコードをルーターから引き出しています。残念ながら、これにより私のプログラムは次の呼び出しでハングします。
while((bytesRead = in.read(data)) > 0)
(ここで、bytesReadはint、inはHttpURLConnectionから構築されたBufferedInputStream、dataはバイト配列です)。
別のスレッドでin.close()を呼び出して呼び出しを「中断」しようとしましたが、インターネット接続が復元されるまで(例外がスローされるまで)効果がありません。
切断されたインターネット接続がプログラムをフリーズするのを防ぐ方法はありますか?