我正在使用commons-net FTPClient来上传一些文件 如何获得上传进度(现在上传的字节数)?
由于
答案 0 :(得分:5)
当然,只需使用CopyStreamListener即可。下面你会看到一个文件检索的例子(从commons-io wiki复制),所以你可以很容易地改变它。
try {
InputStream stO =
new BufferedInputStream(
ftp.retrieveFileStream("foo.bar"),
ftp.getBufferSize());
OutputStream stD =
new FileOutputStream("bar.foo");
org.apache.commons.net.io.Util.copyStream(
stO,
stD,
ftp.getBufferSize(),
/* I'm using the UNKNOWN_STREAM_SIZE constant here, but you can use the size of file too */
org.apache.commons.net.io.CopyStreamEvent.UNKNOWN_STREAM_SIZE,
new org.apache.commons.net.io.CopyStreamAdapter() {
public void bytesTransferred(long totalBytesTransferred,
int bytesTransferred,
long streamSize) {
// Your progress Control code here
}
});
ftp.completePendingCommand();
} catch (Exception e) { ... }
答案 1 :(得分:0)
我想也许我们对CountingOutputStream更好,因为它似乎是出于这个目的?