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

问题描述 投票:5回答:3

目标我的目标是找到一个文本文件或库,让我可以在输入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”,这样一个未知的text mime类型(例如“ text / unknown abc”)就可以了。返回“未知文本文件/格式”。

java text types mime-types
3个回答

3
投票

Apache Tika支持MimeTypes。如果您不知道mime类型,它也支持Content Detection。无论如何,看来您需要这样做:

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

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


0
投票

使用此库

这通过文件,字节,...起作用

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.