こんにちは、FTP ダウンロード用のステータス バーが必要です。progess で float <=1 を取得したいと思います。これは私のコードです:
float status=0;
FTPFile[] files = ftp.listFiles(REMOTEFILE);
if (files == null || files.length == 0) {
throw new FileNotFoundException();
}
long size = files[0].getSize();
InputStream inputStream = ftp.retrieveFileStream(REMOTEFILE);
byte buf[] = new byte[1024];
int len;
int download=0;
while ((len = inputStream.read(buf)) > 0){
out.write(buf, 0, len);
download+=1024;
status=(float)download/size; // here it set the progress
}
out.close();
私のトラブルは、終了ステータスが 1 より大きく、1024 のバッファ サイズを超えていると思われることです (終了時にバッファがいっぱいでない場合)。おそらく、ダウンロードされたバイト数が files[0].getSize() が提供する量よりも多いためでしょうか?
ありがとうございました。