我制作了自己的下载程序,目前的功能是
:获取下载大小
b. 进度条
C. 下载时间
D. 下载速度(虽然不确定)。
但我需要澄清这些:
下载程序是否使用相同的逻辑从 Internet 下载文件?我的意思是在 Java 中我们使用 FileOutputStream 和 InputStream。其他人使用相同的方式吗?
目前我的下载速度估计代码是:
while ((bytesRead = reader.read(buffer)) != -1) { writer.write(buffer, 0, bytesRead); a = (int) (file.length() / 1024); Thread.sleep(1000); csize = (int) (((file.length() / 1024) * 100) / size); progress.setValue(csize); speed.setText("Speed: " + (a - b)+" KB"); remaining.setText("Remaining: "+String.valueOf((size - (file.length() / 2014)))+" KB"); b = a; }
我读过这个主题测量 Java 下载速度,但它计算的是总下载时间和速度,而不是每秒下载速度。我上面的代码显示每秒下载速度,但我不确定这是正确的方法。
我还在这个论坛的某个地方读到,如果我将缓冲区从 [1024] 增加到 [2048] 或 [4096],它会提高我的下载速度,是真的吗?将速度提高到 200kb++ 怎么样?IDM 可以为我做到这一点。
提前致谢 :)