java 如何在下载过程中显示有关带宽速度的用户友好格式输出

标签 java download bandwidth

想要在下载过程中显示有关带宽速度的格式良好的输出

感谢@Tomasz Nurkiewicz,我在下面进行了计算,它显示了
下载文件时每秒兆*字节*。

long start = System.nanoTime();
long totalRead = 0;
final double NANOS_PER_SECOND = 1000000000.0;
final double BYTES_PER_MIB = 1024 * 1024;

    while ((val = bis.read(buffer, 0, 1024)) > 0) {
        //...
        totalRead += val;
        double speed = NANOS_PER_SECOND / BYTES_PER_MIB * totalRead / (System.nanoTime() - start + 1)
    }

希望是这样的。我每秒从 计算,然后我输入一个 if 语句 来选择 KByte/s、MBit/s(不确定)或就像普通的 FTP 客户端显示速度一样。

if( KByte/s something) {
   System.out.print(your current speed xx KB/s);
}else if(MByte/s something){
   System.out.print(your current speed xx MB/s);
}

我的问题是我应该在 if 语句中放入什么?

希望你明白我想做什么

最佳答案

有一个FileUtils.byteCountToDisplaySize() Apache Commons IO中的方法:

System.out.println(
  "your current speed is " + FileUtils.byteCountToDisplaySize(12345) + "/s"
)

// your current speed is 12 KB/s

另请参阅(可能重复):

关于java 如何在下载过程中显示有关带宽速度的用户友好格式输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157437/

相关文章:

Java,我这个关键检测类建对了吗?

python - 获取 SciPy 的 gaussian_kde 函数使用的带宽

javascript - 智能带宽节省 : how to stop HTML5 mp3 audio file from loading unneccessarily, 同时显示总长度持续时间?

php - 在 IE6 中下载文件得到错误的文件名

apache - java.io.NotSerializableException : org. apache.camel.component.file.GenericFile

c - hdparm 和磁盘读取速度

具有可变维数组的 Java 对象

java - 如何将 JLabel 添加到现有 JTextField

java - Swing - JFrame 中的多种布局架构

c# - 如何使用 C# 从 Azure 容器/Blob 读取/下载所有文件?