您好,我需要一个用于 FTP 下载的状态栏。我想获得一个浮动 <=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() 给我的数量?
谢谢你。