Я работаю над написанием программы для загрузки очень больших файлов (~ 2 ГБ) с сервера. Я написал программу, чтобы иметь возможность возобновить частично завершенные загрузки,
Чтобы имитировать плохое подключение к Интернету, я выдергивал сетевой шнур из маршрутизатора во время загрузки. К сожалению, это приводит к зависанию моей программы на следующем вызове: while((bytesRead = in.read(data)) > 0)
(Где bytesRead — это int, in — это BufferedInputStream, созданный из HttpURLConnection, а data — это массив байтов).
Я попытался «прервать» вызов, вызвав in.close() в другом потоке, но это не имеет никакого эффекта, пока интернет-соединение не будет восстановлено (в это время выдается исключение).
Есть ли способ предотвратить зависание моей программы из-за разорванного интернет-соединения?