インターネットから画像を保存するプログラムを書いていますが、一部の画像が部分的に灰色になります。または、実際には灰色のアイコンです。画像を開くと、まったく灰色ではないからです。
画像を保存するために使用する方法は次のとおりです。
public static void saveImage(String imageUrl, String destinationFile) throws IOException{
URL url = new URL(imageUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
問題は、イメージが完全に書き込まれる前にストリームを閉じていることだと思います。それが完了したかどうかを確認する方法はありますか?