Java获取文件Content-Type(Mime-Type)

刚好工作中要用到,所以总结一下。推荐使用第一种和第三种,实在不行,也可以去把http://tool.oschina.net/commons上面特定类型对应的mime-type复制下来,放入map什么的去对比。

1、使用JDK1.7自带方法

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Test{
    public static void main(String[] args){
        Path path = Paths.get("E:\\static\\count.mp3");  
        String contentType = null;  
        try {  
            contentType = Files.probeContentType(path);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }
        System.out.println("File content type is : " + contentType);   
    }
}

2、javax.activation.MimetypesFileTypeMap

import java.io.File;

import javax.activation.MimetypesFileTypeMap;

public class Test{
    public static void main(String[] args){
        String contentType = new MimetypesFileTypeMap().getContentType(new File("E:\\static\\count.mp3"));
        System.out.println(contentType);
    }
}  

3、JMimeMagic

Magic parser = new Magic() ; 
MagicMatch match = parser.getMagicMatch(new File("E:\\static\\count.mp3"));    
System.out.println(match.getMimeType()) ; 

4、java.net.*

Tips:貌似mp3音频文件获取为null,这种暂时不推荐

import java.net.FileNameMap;
import java.net.URLConnection;

public class Test {
    public static void main(String args[]) throws Exception {
        FileNameMap fileNameMap = URLConnection.getFileNameMap();
        String contentType = fileNameMap.getContentTypeFor("E:\\static\\bg.jpg");
        System.out.println(contentType);
        // output : image/jpeg
    }
}

你可能感兴趣的:(Java经典,java,mimetype,文件)