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