如何在java中获取ftp传输速率?

如何在java中获取ftp传输速率?,java,ftp,ftp-client,apache-commons-net,Java,Ftp,Ftp Client,Apache Commons Net,我正在使用FTPClient(apachecommons-net)执行FTP上传和下载。获取传输速率的最佳方法是什么 一种方法是在ftp.storeFile()之前取开始时间,在ftp.storeFile()之后取结束时间,并使用时差和文件大小来获得传输速率。但这似乎真的很幼稚和低效。有什么更好的方法吗?您描述的方法似乎有问题,因为在传输完成之前,您无法获得文件传输速率。您可以考虑使用上面所描述的技术,而只使用部分方法(从FTPclipse API)获得部分文件传输(并获得每个块之后的传输速率)

我正在使用FTPClient(apachecommons-net)执行FTP上传和下载。获取传输速率的最佳方法是什么


一种方法是在ftp.storeFile()之前取开始时间,在ftp.storeFile()之后取结束时间,并使用时差和文件大小来获得传输速率。但这似乎真的很幼稚和低效。有什么更好的方法吗?

您描述的方法似乎有问题,因为在传输完成之前,您无法获得文件传输速率。您可以考虑使用上面所描述的技术,而只使用部分方法(从FTPclipse API)获得部分文件传输(并获得每个块之后的传输速率):

appendFile(字符串文件名,InputStream dataToWrite)

appendFileStream(字符串文件名)返回要写入的输出流

我自己并没有这样做,但这似乎是一个更好的主意,然后只使用传输速率估计后,整个文件已经完成。如果我不得不等待换乘完成以获得换乘速度,这会让我发疯,但我是一个不耐烦的人

希望有帮助