一尘不染

在Java中获取文件的Mime类型

java

我只是想知道大多数人如何从Java文件中获取mime类型?到目前为止,我已经尝试了两个工具:JMimeMagic&Mime-Util

第一个给我内存异常,第二个没有正确关闭其流。我只是想知道其他人是否拥有他们使用和正常工作的方法/库?


阅读 791

收藏
2020-02-25

共1个答案

一尘不染

不幸,

mimeType = file.toURL().openConnection().getContentType();

之所以无法使用,是因为URL的这种使用将文件锁定了,例如,它是不可删除的。

但是,你有:

mimeType= URLConnection.guessContentTypeFromName(file.getName());

还有以下内容,其优点是不仅可以使用文件扩展名,而且还可以浏览内容

InputStream is = new BufferedInputStream(new FileInputStream(file));
mimeType = URLConnection.guessContentTypeFromStream(is);
 //...close stream

但是,正如上面的评论所建议的那样,内置的mime类型表非常有限,例如不包括MSWord和PDF。因此,如果要一概而论,你将需要使用Mime-Util(这是一个很棒的库,同时使用文件扩展名和内容)来超越内置库。

2020-02-25