java獲取檔案Mime Type的幾種方式
阿新 • • 發佈:2018-12-30
本文是在看了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);
完結!