このコードを使用してファイルをダウンロードしています:
try{
File remoteFile = new File(matcher.group());
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();
} catch (Exception e) {
//e.printStackTrace();
logger.log(Level.SEVERE, " - Unable to download remote file({0}): {1} ", new Object[] { url.toString(), e.getMessage() });
file.delete();
return false;
}
完全なファイルがダウンロードされない場合があります。原因がわからず、原因を特定するためにどのような選択肢があるのか疑問に思っています。ブラウザでファイルを手動でダウンロードできます。ファイルの約 5% のみがダウンロードに失敗しています。これまでのところ、失敗するファイルの種類のパターンに気づいていません。
何かできることがあるのだろうか、おそらくデバッグモードか、接続が切断されたときにストリームに文句を言って詳細を教えてくれる何かがあるのではないかと思っています。
更新:これは例外処理でラッピングしていますが、何も見ていません。エラーが発生したときにそれを見ていないのは、タイミングの結果である可能性があります。