首页 > 代码库 > java获取文件Mime Type的几种方式

java获取文件Mime Type的几种方式

本文是在看了http://blog.csdn.net/chaijunkun/article/details/7046343之后实践了一下,为自己加深印象再写一遍。

jar包是用火狐下载的,放在哪里忘了。是在写文件下载时,提示框要告诉用户下载的是什么类型的文件用到的。

首先说一下第一种,也是自认为最简单的一句话搞定,也不用导jar包,需要import javax.activation.MimetypesFileTypeMap;

String type = new MimetypesFileTypeMap().getContentType(name);//name:"aa.txt"

第二种,跟第一种差不多,不过里面的内容就少了很多,好多类型都没有,需要import java.net.FileNameMap;
import java.net.URLConnection;

FileNameMap fileNameMap = URLConnection.getFileNameMap();   
String type = fileNameMap.getContentTypeFor(name);//name:"aa.txt"

第三种需要导入jmimemagic.jar,需要import net.sf.jmimemagic.Magic;
import net.sf.jmimemagic.MagicMatch;

MagicMatch match = Magic.getMagicMatch(new File("c:/aa.txt"), false); //注意:这里输入的是文件(必须真
实存在),不是String
String type = match.getMimeType();

第四种需要导入mime-util.jar,需要import eu.medsea.mimeutil.MimeUtil; import java.util.Collection;

MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");  
File f = new File ("c:/aa.txt");  //文件必须真实存在
Collection<?> types = MimeUtil.getMimeTypes(f);  //这里返回的不是String,是Collection
System.out.println(types);

完结!



java获取文件Mime Type的几种方式