繁体   English   中英

将 mime 类型映射到对人类友好的文件类型的 Java 库或文本文件

[英]Java library or text file that maps mime types to nice human friendly file types

目标我的目标是找到一个文本文件或库,使我能够在给定 mime 类型输入时进行映射并返回一个很好的人类友好格式。

例如,给定 Word 的 mime 类型(如下所示),我想要一个类似于“Microsoft Office Word 文档”的结果。

application/vnd.openxmlformats-officedocument.wordprocessingml.document

我意识到我可以编译自己的列表并使用诸如 Map (Java) 之类的东西,但它不会很全面等。

简单选项 我知道我可以检查并返回 sub mime 类型并保留最后一个组件,但是根据上面的 Word mime 类型,这不是很复杂,结果将是一个非常通用的“文档”。 我可以扩展并采用更多组件,但结果仍然很丑陋。

键/值文件我试图找到的另一个选项是带有键/值对的文本文件,其中键是完整的 mime 类型,值是友好的人类文本。

text/plain=Plain Text File
application/octet-stream=Unknown binary file

这似乎是一个不错的选择,但我无法找到包含大量条目的最终文本文件。 如果仅媒体来源(我更喜欢称其为主要 mime 类型)、“text/plain”中的“text”存在,那么未知的文本 mime 类型(例如“text/unknown abc”)也会很好返回“未知的文本文件/格式”。

Apache Tika 支持MimeTypes 如果您不知道 mime 类型,它还支持内容检测 无论如何,看起来您需要执行以下操作:

String t = "text/plain";
org.apache.tika.mime.MimeTypes.getMimeType(t).getDescription();

免责声明:我实际上没有尝试过。 另外,我不知道它是否支持您需要的所有 mime 类型。

使用这个库

这适用于文件,字节,...

MimeUtil > https://github.com/saces/MimeUtil

用法:

MagicMimeMimeDetector g = new MagicMimeMimeDetector();
Collection<MimeType> list =  g.getMimeTypes(file);

if(list.size() > 0)
{
    MimeType mime = list.iterator().next();
    return mime.toString();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM