我正在处理有关软件下载文件的问题,以下是我的成果:我已经成功地下载了文件并且能够获取下载进度。但仍有一项任务未完成:测量下载速度。希望您能提供帮助。谢谢。
这是当前下载方法的代码:
public void run()
{
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try
{
URL url1 = new URL(url);
out = new BufferedOutputStream(
new FileOutputStream(sysDir+"\\"+where));
conn = url1.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
double progress1;
while ((numRead = in.read(buffer)) != -1)
{
out.write(buffer, 0, numRead);
numWritten += numRead;
this.speed= (int) (((double)
buffer.length)/8);
progress1 = (double) numWritten;
this.progress=(int) progress1;
}
}
catch (Exception ex)
{
echo("Unknown Error: " + ex);
}
finally
{
try
{
if (in != null)
{
in.close();
}
if (out != null)
{
out.close();
}
}
catch (IOException ex)
{
echo("Unknown Error: " + ex);
}
}
}
InputStream.read()
的时间转换为 KB-MB-GB/s 的公式是什么?这个答案有助于测量InputStream.read()
的执行时间。 - user5395084