2012-04-26 7 views
0

インターネットから画像を保存するプログラムを書きますが、一部の画像は部分的に灰色になります。または、まさにそのアイコンが灰色のアイコンです。なぜなら、画像を開くとグレーではないからです。私はこの問題は、画像が完全に書き込まれる前にImはストリームを閉じることであると信じURLから保存された画像は部分的に灰色です

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(); 
} 

:ここ

は、私は、画像を保存するために使用する方法です。私はそれが完了したかどうかを確認する方法はありますか?

+0

コードは正常です。 「アイコン」は何を意味しますか?あなたは完全に書かれる前にイメージ/アイコンを提供することができますか?このsaveImageメソッドが終了するまで待つ必要があります。 – Thilo

答えて

1

この現象は、エクスプローラでフォルダを開いて、コードがイメージを書き込んでいるときに同時に更新するときに発生します。 Windowsはサムネイルの作成を試みます。ファイルの最初の部分にはすべて "headerinfo"が格納されているので、ウィンドウは画像の大きさとそのすべてを知るでしょう。すべてのデータが存在するわけではないので、そのセクションのサムネイルは灰色になります。

+0

ああ、あなたは正しい、私は今ここにそれを求めて愚かな気がする> _ < – Topsic

+0

愚かな気がしない。この行動を発見するまでには時間がかかりました:) – amaters

関連する問題