我只是想知道大多数人如何从Java文件中获取mime类型?到目前为止,我已经尝试了两个工具:JMimeMagic&Mime-Util。
JMimeMagic&Mime-Util
第一个给我内存异常,第二个没有正确关闭其流。我只是想知道其他人是否拥有他们使用和正常工作的方法/库?
不幸,
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(这是一个很棒的库,同时使用文件扩展名和内容)来超越内置库。