Como matar uma chamada BufferedInputStream .read ()

Estou trabalhando na criação de um programa para baixar arquivos muito grandes (~ 2 GB) de um servidor. Escrevi o programa para poder retomar downloads parcialmente concluídos,

Para simular uma conexão ruim à Internet, puxei meu cabo Ethernet para fora do roteador durante o download. Infelizmente, isso faz com que meu programa seja interrompido na seguinte chamada:while((bytesRead = in.read(data)) > 0)

(Onde bytesRead é um int, in é um BufferedInputStream criado a partir de uma HttpURLConnection e dados são uma matriz de bytes

entei "interromper" a chamada chamando in.close () em outro segmento, mas não tem efeito até que a conexão à Internet seja restaurada (quando uma exceção é lançada

Existe alguma maneira de impedir que uma conexão à Internet interrompida congele meu programa?

questionAnswers(6)

yourAnswerToTheQuestion