1. 程式人生 > >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);

完結!