2010-11-19 82 views

回答

4

从URL中读取的第一个字节,如果它是一个GIF图像,它应该用“神奇的词”开始:GIF89a

+0

老版本有'GIF87a',如果我没有记错 – 2010-11-19 12:39:26

3

下面的代码会告诉什么的格式图像流

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