1. 程式人生 > >[Java]根據檔案取得Mime Type的各種方法

[Java]根據檔案取得Mime Type的各種方法

import java.net.FileNameMap;  
import java.net.URLConnection;  
  
public class FileUtils {  
  
  public static String getMimeType(String fileUrl)  
      throws java.io.IOException  
    {  
      FileNameMap fileNameMap = URLConnection.getFileNameMap();  
      String type = fileNameMap.getContentTypeFor(fileUrl);  
  
      return type;  
    }  
  
    public static void main(String args[]) throws Exception {  
      System.out.println(FileUtils.getMimeType("file://c:/temp/test.TXT"));  
      // output :  text/plain  
    }  
  } 
示例程式碼(不推薦:這種方式也是通過副檔名判斷mime type的、而且速度很慢)
import java.net.*;  
  
public class FileUtils{  
  public static String getMimeType(String fileUrl)  
    throws java.io.IOException, MalformedURLException  
  {  
    String type = null;  
    URL u = new URL(fileUrl);  
    URLConnection uc = null;  
    uc = u.openConnection();  
    type = uc.getContentType();  
    return type;  
  }  
  
  public static void main(String args[]) throws Exception {  
    System.out.println(FileUtils.getMimeType("file://c:/temp/test.TXT"));  
    // output :  text/plain  
  }  
}  

4、javax.activation.MimetypesFileTypeMap 需要引入activation.jar這個jar包 , 他可以從下面這個網站獲得http://java.sun.com/products/javabeans/glasgow/jaf.html
這個MimetypesFileMap類會映射出一個file的Mime Type,這些Mime Type型別是在activation.jar包裡面的資原始檔中定義的