我编写了一个使用以下基本算法下载各种文件的应用程序:
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%通过〜30mb下载)。奇怪的是,没有抛出任何异常,这让我相信while循环的条件是导致程序挂起的原因。
我猜对了吗?我有什么可以做的吗?