我編寫了一個上傳和下載文件到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的下載速度?