Java检查BuffereImage是否为GIF

Java检查BuffereImage是否为GIF,java,gif,bufferedimage,Java,Gif,Bufferedimage,是否可以确定buffereImage(从URL读取)是否为GIF图像?我想检查MIME类型,而不是文件扩展名.gif 谢谢读取URL的第一个字节,如果它是GIF图像,它应该以“神奇的单词”开头:GIF89a以下代码将说明图像流的格式 public static String read(InputStream input) throws IOException { ImageInputStream stream = ImageIO.createImageInputStream(input)

是否可以确定
buffereImage
(从URL读取)是否为
GIF
图像?我想检查MIME类型,而不是文件扩展名.gif


谢谢

读取URL的第一个字节,如果它是GIF图像,它应该以“神奇的单词”开头:
GIF89a
以下代码将说明图像流的格式

public static String read(InputStream input) throws IOException {
    ImageInputStream stream = ImageIO.createImageInputStream(input);

    Iterator iter = ImageIO.getImageReaders(stream);
    if (!iter.hasNext()) {
        return null;
    }
    ImageReader reader = (ImageReader) iter.next();
    ImageReadParam param = reader.getDefaultReadParam();
    reader.setInput(stream, true, true);
    BufferedImage bi;
    try {
        bi = reader.read(0, param);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        reader.dispose();
        try {
            stream.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return reader.getFormatName();
}

public static void main(String[] args) throws MalformedURLException, IOException {
    URL url = new URL("http://p1.pstatp.com/large/efa0004d2238045fb9f");
    URLConnection connection = url.openConnection();
    connection.setConnectTimeout(3000);
    connection.setReadTimeout(3000);
    InputStream in = null;
    try {
        in = connection.getInputStream();
        String format = read(in);
        System.out.print(format);
    } catch (Exception e) {

    }
}
输出为:

gif