コードを使用して、URL からファイルにコンテンツを書き込みます。ここにコードがあります
public void copyFileFromUrl(URL source, File target) throws IOException {
try {
if (!target.exists()) {
target.createNewFile();
log.debug("target file created for " + target);
log.debug("downloading source ....");
InputStream in = source.openStream();
OutputStream out = new FileOutputStream(target);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
} else {
log.debug("skipping creation of asset");
}
} catch (Exception e) {
log.debug("trouble with " + target);
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
in.close();
out.close();
}
}
今何が起こっているのか、ファイルサイズが 40kb だとします。書き込み中に接続のリセットまたは何らかの例外が発生した場合、すべてのコンテンツが完全に書き込まれないか、何も書き込まれず、サイズが 0 以下のファイルがあります。 URLの元のファイルより。
ファイル全体がURLから完全に書き込まれることを保証する方法はありますか?書き込み中に何らかの例外が発生した場合は、3回書き込みを試み、3回目の試行後にファイルが存在しないというメッセージをログに記録します完全に書かれた?
ありがとう