我正在使用以下代码通过 http 从远程位置下载文件。某些资产未完全下载并且似乎已损坏。看起来大约有 5% 的时间。我认为通过提前获取文件大小并将其与我下载的内容进行比较以确保没有遗漏任何内容来确保我已经下载了完整文件会很好。
通过一些谷歌搜索并查看我已经在使用的对象,我看不到获得此文件大小的明显方法。有人可以指出我正确的方向吗?
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setInstanceFollowRedirects(true);
InputStream is = con.getInputStream();
file = new File(destinationPath+"."+remoteFile.getExtension());
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getAbsolutePath()));
while ((i = bis.read()) != -1) {
bos.write(i);
}
bos.flush();
bis.close();