2012-09-21 52 views
1

我需要知道沒有文件擴展名的文件擴展名?這是可能的與Java IO API?如何在不知道文件擴展名的情況下獲取圖片類型?

我得到以下異常而讀JPG文件:

javax.imageio.IIOException: Unsupported Image Type 

沒有人有任何想法如何解決這個問題?

當我嘗試在Mac OS X或Windows中的普通圖像查看器中打開圖像時,它工作得很好。

是否有任何機會將文件重命名爲不同的類型,並且它的原始類型與擴展名不同?

+1

http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in​​-java? – mindas

回答

3

您可以使用此代碼獲取MIME類型。

String imageName = "C:\\Documents and Settings\\home\\Desktop\\P092870.jpg"; 
File input = new File(imageName); 
System.out.println("System Type description of " + input.getName() + " is " + 
      FileSystemView.getFileSystemView().getSystemTypeDescription(input)); 
System.out.println("Mime Type of " + input.getName() + " is " + 
      new MimetypesFileTypeMap().getContentType(input)); 
0

您可以使用mime-util庫。我的示例代碼將獲得文件的MIME類型。

String imagePath = "filepath"; 
    File file = new File(imagePath); 

    if (MimeUtil.getMimeDetector(MagicMimeMimeDetector.class.getName()) == null) { 
     MimeUtil.registerMimeDetector(MagicMimeMimeDetector.class.getName()); 
    } 
    Collection<MimeType> mimeTypes = MimeUtil.getMimeTypes(file); 
    for (MimeType mimeType : mimeTypes) { 
     System.out.println(mimeType.getMediaType()); 
    } 
相關問題