0

我正在编写一个程序来保存来自 Internet 的图像,但有些图像最终变成了部分灰色。或者它只是真的是灰色的图标,因为如果我打开图像它根本不是灰色的。

这是我用来保存图像的方法:

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

我认为问题在于我在图像完全写入之前关闭了流。有什么办法可以检查它是否完成或什么?

4

1 回答 1

1

当您在 Windows 资源管理器中打开文件夹并在代码写入图像的同时刷新时,会发生此行为。Windows 将尝试创建缩略图。在文件的第一部分,所有的“headerinfo”都被存储了,所以windows会知道图像有多大等等。因为并非所有数据都存在,所以该部分的缩略图将变为灰色。

于 2012-04-26T11:05:39.360 回答