2

我需要知道文件扩展名而没有文件扩展名?java IO API可以做到这一点吗?

读取 JPG 文件时出现以下异常:

javax.imageio.IIOException: Unsupported Image Type

有谁知道如何解决这个问题?

当我尝试在 Mac OS X 或 Windows 的普通图像查看器中打开图像时,它工作得很好。

文件是否有可能被重命名为不同的类型并且它的原始类型与扩展名不同?

4

2 回答 2

4

您可以使用此代码获取 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));
于 2012-09-21T13:47:37.573 回答
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());
    }
于 2012-09-21T14:01:29.800 回答