如何在不知道文件扩展名的情况下获取图像类型?

我需要知道文件扩展名而没有文件扩展名? 这是否可以使用java IO API?

我在阅读JPG文件时遇到以下exception:

javax.imageio.IIOException: Unsupported Image Type 

有没有人有任何想法如何解决这个问题?

当我尝试在Mac OS X或Windows中的普通图像查看器中打开图像时,它可以正常工作。

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

您可以使用此代码获取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)); 

您可以使用mime-util库。 我的示例代码将获取该文件的mime类型。

  String imagePath = "filepath"; File file = new File(imagePath); if (MimeUtil.getMimeDetector(MagicMimeMimeDetector.class.getName()) == null) { MimeUtil.registerMimeDetector(MagicMimeMimeDetector.class.getName()); } Collection mimeTypes = MimeUtil.getMimeTypes(file); for (MimeType mimeType : mimeTypes) { System.out.println(mimeType.getMediaType()); }