在java中确定文件的哑剧类型的最佳方法?

2022-09-02 03:43:50

好奇Java中获取文件哑剧类型的最佳方法是什么。它实际上应该检查文件,因为文件名不是准确的指示器。

目前我正在使用以下内容,这似乎非常命中或未命中

  is = new BufferedInputStream(new FileInputStream(fileName));
  String mimeType = URLConnection.guessContentTypeFromStream(is);
  if(mimeType == null) {
    throw new IOException("can't get mime type of image");
  }

答案 1

The URLConnection#guessContentTypeFromStream() or ...FromName() 确实是您在标准 Java SE API 中所能获得的最好的。然而,有像jMimeMagic这样的第三方库,它比方法做得更好。URLConnection#guessXXX()

String mimeType = Magic.getMagicMatch(file, false).getMimeType();

这支持更广泛的哑剧类型。


答案 2

以下链接很好地比较了获取文件Mime类型的各种方法(它包括:Apache Tika,JMimeMagic等库以及一些本机代码):http://www.rgagnon.com/javadetails/java-0487.html


推荐