Я написал приложение, которое загружает различные файлы, используя следующий основной алгоритм:
InputStream reader = myURL.openStream();
OutputStream writer = new FileOutputStream(myFile);
byte[] buffer = new byte[153600];
int bytesRead = 0;
while((bytesRead = reader.read(buffer)) > 0)
{
writer.write(buffer, 0, bytesRead);
buffer = new byte[153600];
}
Это хорошо работает для большинства моих пользователей, но некоторые недавно сообщили о проблеме, при которой процесс загрузки начинается, но частично останавливается (один конкретный пользователь сообщил, что он всегда зависает ~ 10% -15% пути через ~ 30мб скачать). Как ни странно, исключение не выдается, что заставляет меня поверить, что условие цикла while вызывает зависание программы.
Я прав в своем предположении? Что я могу с этим поделать?