怎样获取一个文件的 MIME 类型

如题所述

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。这是我在百度百科上摘抄的一段介绍,具体大家可以去百度百科查阅。

好,我们现在就来看看如何使用java获取文件的Content-Type的值,那么按照我的习惯,先来上代码:

[java] view plain copy

    import java.io.IOException;  

    import java.nio.file.Files;  

    import java.nio.file.Path;  

    import java.nio.file.Paths;  

    /** 

    * 测试类 

    * @author ZY 

    */  

    public class MIME_Demo {  

    public static void main(String[] args) throws Exception {  

    System.out.println(getContentType("F:/test.png"));  

    System.out.println(getContentType("F:/2.doc"));  

    System.out.println(getContentType("F:/2.csv"));  

    System.out.println(getContentType("F:/LiveUpdate.exe"));  

    System.out.println(getContentType("F:/1.txt"));  

    System.out.println(getContentType("F:/demo.jpg"));  

    }  

    public static String getContentType(String filename){  

    String type = null;  

    Path path = Paths.get(filename);  

    try {  

    type = Files.probeContentType(path);  

    } catch (IOException e) {  

    e.printStackTrace();  

    }  

    return type;  

    }  

    }  

    这段代码的执行结果为:

    [plain] view plain copy

    image/png  

    application/msword  

    application/vnd.ms-excel  

    application/x-msdownload  

    text/plain  

    image/jpeg  

    能够很好的获取到文件的Content-type值,但是这里给大家提个醒,由于java.nio.file.*这个包是在jdk1.7中才出现的,所以对于低版本的jdk是不能使用的!再次提醒,需要使用jdk1.7及以上!
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答