我编写了一个上传和下载文件到FTP服务器的程序,但我无法监控速度和传输速率。
我用FTPClient类和它的两个方法retrievFile()
和storeFile()
Java:如何获取上传和下载速度
2
A
回答
0
由于retrieveFile
和storeFile
处理输入和输出流,有可能是你写你自己的子类,它可以在或出过传输的字节数一定时间?
1
试试这个:
public class ReportingOutputStream extends OutputStream {
public static final String BYTES_PROP = "Bytes";
private FileOutputStream fileStream;
private long byteCount = 0L;
private long lastByteCount = 0L;
private long updateInterval = 1L << 10;
private long nextReport = updateInterval;
private PropertyChangeSupport changer = new PropertyChangeSupport(this);
public ReportingOutputStream(File f) throws IOException {
fileStream = new FileOutputStream(f);
}
public void setUpdateInterval(long bytes) {
updateInterval = bytes;
nextReport = updateInterval;
}
@Override
public void write(int b) throws IOException {
byte[] bytes = { (byte) (b & 0xFF) };
write(bytes, 0, 1);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
fileStream.write(b, off, len);
byteCount += len;
if (byteCount > nextReport) {
changer.firePropertyChange(BYTES_PROP, lastByteCount, byteCount);
lastByteCount = byteCount;
nextReport += updateInterval;
}
}
@Override
public void close() throws IOException {
if (fileStream != null) {
fileStream.close();
fileStream = null;
}
}
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
changer.removePropertyChangeListener(propertyName, listener);
}
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
changer.addPropertyChangeListener(propertyName, listener);
}
}
创建流后,添加属性更改侦听BYTES_PROP
。默认情况下,它会触发每接收到1 KB的处理程序。致电setUpdateInterval
更改。
相关问题
- 1. 获取下载和上传速度C#
- 2. python获取上传/下载速度
- 3. Mesaure上传和下载iPhone的速度
- 4. 如何使用Javascript检测下载和上传速度
- 5. 如何测试下载和上传速度wifi/3G?
- 6. 如何测试上传和下载速度到Flash Media Server?
- 7. 非常慢的上传/下载速度
- 8. cURL上传/下载速度测试
- 9. 降低上传/下载速度
- 10. 计算下载/上传速度
- 11. Java-如何下载和上传文件?
- 12. 调用ExecuteQuerySegmented时获取下载速度
- 13. 测量下载速度Java
- 14. 如何使用Silverlight和ASP.NET MVC来测量上传和下载网络速度
- 15. 如何在PHP,Python或Java中编写下载/上传速度监视器?
- 16. 如何在OS X上获取CPU温度和风扇速度?
- 17. 如何以编程方式测试上传和下载ios的速度
- 18. 从上传百分比获取上传速度
- 19. 如何实现Java下的限制下载速度?
- 20. 如何在java中获取网速和CPU温度
- 21. 如何知道上传传输速度
- 22. 用C#下载/上传进度和速度的最有效/准确的方法?
- 23. 如何获取与audioinputstream java下载文件的进度
- 24. 使用java优化下载速度
- 25. 使用Java优化下载速度
- 26. 极限速度下载Java中
- 27. java本地上传和下载文件
- 28. 如何显示进度和下载速度
- 29. 如何增加ClickOnce下载速度?
- 30. 如何限制Go的下载速度?