估计文件是否为MIME类型

naz*_*art 7 java mime-types

应检查此方法是否为MIME类型.为了实现这个目标,我使用方法probeContentType().
然而,也许是另一种决定相同问题的方法.哪些是其他选择(如果有的话)?

码:

class ProbeContentTypeCheker implements Checker {

    @Override
    public boolean check(File fileCheck) {
        try {
            Path filePath = FileSystems.getDefault().getPath(
                    fileCheck.getAbsolutePath());
            if ((Files.probeContentType(filePath) != null)) {
                return true;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

题:

  • 还有其他替代方法可以检查文件中的MIME类型吗?

Dro*_*sky 6

有两种获取文件 mime 类型的方法:

  1. 通过文件的幻数识别- 这是一种可靠的方法,但它需要从文件中读取信息
  2. 通过文件扩展名猜测它 - 这是一种快速的方法,但可能不太准确

以下解决方案使用第一种方法:

  1. Apache Tika - 使用现有解析器库从各种文档中检测和提取元数据和结构化文本内容的工具包
  2. JMimeMagic - 用于确定文件或流的 MIME 类型的 Java 库
  3. mime-util - 使 Java 程序能够根据文件扩展名、魔术数据和内容嗅探来检测 MIME 类型

以下解决方案使用第二种方法:

  1. javax.activation.MimetypesFileTypeMap - JavaBeans 激活框架的这一部分。MimetypesFileTypeMap 在用户系统中的各个位置查找 MIME 类型文件条目。
  2. 使用 java.net.URL - 扩展名和 mime-type 之间的映射在文件 [jre_home]/lib/content-types.properties 中定义

有关更多信息,请参阅此帖子