相關連結http://topic.csdn.net/t/20030925/14/2299139.html 使用这个jar    
  http://www.drewnoakes.com/code/exif/metadata-extractor-2.1.jar    
  也有源代码    
  http://www.drewnoakes.com/code/exif/metadata-extractor-src-2.1.jar    
     
  然后    
  import   com.drew.metadata.*;    
  import   com.drew.metadata.exif.*;    
  import   com.drew.imaging.jpeg.JpegProcessingException;      
  import   java.io.*;    
  import   java.util.Iterator;    
     
  public   class   EXIFReader   {    
     
  public   static   void   main(String   args[])   {    
  File   f   =   new   File("c:\\b.jpg");    
  try   {    
  ExifReader   er   =   new   ExifReader(f);    
  Metadata   exif   =   er.extract();    
  Iterator   itr   =   exif.getDirectoryIterator();    
  while(itr.hasNext())   {    
  Directory   directory   =   (Directory)itr.next();    
  /*    
  System.out.println("EXIF版本   "   +   directory.getString(ExifDirectory.TAG_EXIF_VERSION));    
  System.out.println("相机品牌   "   +   directory.getString(ExifDirectory.TAG_MAKE));    
  System.out.println("相机型号   "   +   directory.getString(ExifDirectory.TAG_MODEL));    
  System.out.println("光圈   "   +   directory.getString(ExifDirectory.TAG_FNUMBER));    
  System.out.println("快門   "   +   directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));    
  System.out.println("感光度   "   +   directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));    
  break;*/    
     
  //获得全部metadata    
  Iterator   tags   =   directory.getTagIterator();    
  while   (tags.hasNext())   {    
  Tag   tag   =   (Tag)tags.next();    
  System.out.println(tag);    
  }    
  if   (directory.hasErrors())   {    
  Iterator   errors   =   directory.getErrors();    
  while   (errors.hasNext())   {    
  System.out.println("ERROR:   "   +   errors.next());    
  }    
  }          
  }    
  }   catch   (JpegProcessingException   e)   {    
  System.err.println("not   jpeg   file");    
  }   catch   (FileNotFoundException   ex)   {    
  System.err.println("file   not   found");    
  }    
     
  }    
     
  } 
關於 Iterator 這行我用eclipse去執行它前面總是有驚嘆號是我有什麼檔案沒讀到還是有什麼問題 
他內容寫Iterator is a raw type. References to generic type Iterator <E> should be parameterized 
請問要怎麼寫才能正確執行
程式碼長的什麼樣子

解决方案 »

  1.   

    Eclipse只是建议你用泛型声明,应该不影响执行,你要改的话可以这样:
    Iterator<Tag>  tags   =   directory.getTagIterator(); 
    同时,将directory.getTagIterator(); 方法声明修改为类似public Iterator<Tag> getTagIterator() 这样