Bir CountingOutputStream'e ihtiyacınız var (Commons IO'da görüldüğü gibi: http://commons.apache.org/io/api-release/index.html). Sen ..
EDIT, onlardan biri oluşturmak İçinde Hedef OutputStream sarın ve sonra indirme ilerlemesini izlemek talep üzerine ByteCount kontrol edebilirsiniz:
int size;
String remote, local;
// do some work to initialize size, remote and local file path
// before saving remoteSource to local
OutputStream output = new FileOutputStream(local);
CountingOutputStream cos = new CountingOutputStream(output){
protected void beforeWrite(int n){
super.beforeWrite(n);
System.err.println("Downloaded "+getCount() + "/" + size);
}
};
ftp.retrieveFile(remote, cos);
output.close();
: Böyle bir şey yapacağını Programınız çok iş parçacıklıysa, ilerlemeyi ayrı bir iş parçacığı kullanarak izlemek isteyebilirsiniz (örneğin, bir GUI programı için), ancak bu uygulamalara özgü bir ayrıntıdır.
"Karma" işlevinin eşdeğerine ihtiyacınız var - ne olduğunu bilmiyorum. – duffymo
Bir copyStreamAdapter hakkında bir şey okudum, ancak bu konuda herhangi bir ayrıntı bilmiyorum. –