gpt4 book ai didi

java - 测量下载速度 Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:59 26 4
gpt4 key购买 nike

我正在努力在软件上下载一个文件,这就是我得到的,它成功下载了,而且我也能取得进展,但还有一件事我不知道该怎么做。测量下载速度。我将不胜感激你的帮助。谢谢。这是当前的下载方法代码

    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);
}
}
}

最佳答案

与您测量任何东西的方式相同。

System.nanoTime() 返回一个 Long,您可以使用它来衡量某件事需要多长时间:

Long start = System.nanoTime();
// do your read
Long end = System.nanoTime();

现在您已经知道了读取 X 字节所花费的纳秒数。算一算,你就有了下载率。

您很可能正在寻找每秒字节数。跟踪您已读取的字节总数,检查是否已过一秒钟。一秒钟过去后,根据您在该时间内读取的字节数计算出速率。重置总数,重复。

关于java - 测量下载速度 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com