MIME规范—MIME类型大全

提问:同一个后缀名对应多个MIME值是什么情况,怎么解释。希望有明白的能留言交流。


我只是将W3C中的两个表格整理成了二维数组的格式:

   /**
     * 按照内容类型排列的 Mime 类型列表
     */
    String[][] MimeTableFirst = {
            {"application/envoy","evy"},
            {"application/fractals","fif"},
            {"application/futuresplash","spl"},
            {"application/hta","hta"},
            {"application/internet-property-stream","a"},
            {"application/mac-binhex40","hqx"},
            {"application/msword","doc"},
            {"application/msword","dot"},
            {"application/octet-stream","*"},
            {"application/octet-stream","bin"},
            {"application/octet-stream","class"},
            {"application/octet-stream","dms"},
            {"application/octet-stream","exe"},
            {"application/octet-stream","lha"},
            {"application/octet-stream","lzh"},
            {"application/oda","oda"},
            {"application/olescript","axs"},
            {"application/pdf","pdf"},
            {"application/pics-rules","prf"},
            {"application/pkcs10","p10"},
            {"application/pkix-crl","crl"},
            {"application/postscript","ai"},
            {"application/postscript","eps"},
            {"application/postscript","ps"},
            {"application/rtf","rtf"},
            {"application/set-payment-initiation","set"},
            {"application/set-registration-initiation",""},
            {"application/vnd.ms-excel","xla"},
            {"application/vnd.ms-excel","xlc"},
            {"application/vnd.ms-excel","xlm"},
            {"application/vnd.ms-excel","xls"},
            {"application/vnd.ms-excel","xlt"},
            {"application/vnd.ms-excel","xlw"},
            {"application/vnd.ms-outlook","msg"},
            {"application/vnd.ms-pkicertstore","sst"},
            {"application/vnd.ms-pkiseccat","cat"},
            {"application/vnd.ms-pkistl","stl"},
            {"application/vnd.ms-powerpoint","pot"},
            {"application/vnd.ms-powerpoint","pps"},
            {"application/vnd.ms-powerpoint","ppt"},
            {"application/vnd.ms-project","mpp"},
            {"application/vnd.ms-works","wcm"},
            {"application/vnd.ms-works","wdb"},
            {"application/vnd.ms-works","wks"},
            {"application/vnd.ms-works","wps"},
            {"application/winhlp","hlp"},
            {"application/x-bcpio","bcpio"},
            {"application/x-cdf","cdf"},
            {"application/x-compress","z"},
            {"application/x-compressed","tgz"},
            {"application/x-cpio","cpio"},
            {"application/x-csh","csh"},
            {"application/x-director","dcr"},
            {"application/x-director","dir"},
            {"application/x-director","dxr"},
            {"application/x-dvi","dvi"},
            {"application/x-gtar","gtar"},
            {"application/x-gzip","gz"},
            {"application/x-hdf","hdf"},
            {"application/x-internet-signup","ins"},
            {"application/x-internet-signup","isp"},
            {"application/x-iphone","iii"},
            {"application/x-javascript","js"},
            {"application/x-latex","latex"},
            {"application/x-msaccess","mdb"},
            {"application/x-mscardfile","crd"},
            {"application/x-msclip","clp"},
            {"application/x-msdownload","dll"},
            {"application/x-msmediaview","m13"},
            {"application/x-msmediaview","m14"},
            {"application/x-msmediaview","mvb"},
            {"application/x-msmetafile","wmf"},
            {"application/x-msmoney","mny"},
            {"application/x-mspublisher","pub"},
            {"application/x-msschedule","scd"},
            {"application/x-msterminal","trm"},
            {"application/x-mswrite","wri"},
            {"application/x-netcdf","cdf"},
            {"application/x-netcdf","nc"},
            {"application/x-perfmon","pma"},
            {"application/x-perfmon","pmc"},
            {"application/x-perfmon","pml"},
            {"application/x-perfmon","pmr"},
            {"application/x-perfmon","pmw"},
            {"application/x-pkcs12","p12"},
            {"application/x-pkcs12","pfx"},
            {"application/x-pkcs7-certificates","p7b"},
            {"application/x-pkcs7-certificates","spc"},
            {"application/x-pkcs7-certreqresp","p7r"},
            {"application/x-pkcs7-mime","p7c"},
            {"application/x-pkcs7-mime","p7m"},
            {"application/x-pkcs7-signature","p7s"},
            {"application/x-sh","sh"},
            {"application/x-shar","shar"},
            {"application/x-shockwave-flash","swf"},
            {"application/x-stuffit","sit"},
            {"application/x-sv4cpio","sv4cpio"},
            {"application/x-sv4crc","sv4crc"},
            {"application/x-tar","tar"},
            {"application/x-tcl","tcl"},
            {"application/x-tex","tex"},
            {"application/x-texinfo","texi"},
            {"application/x-texinfo","texinfo"},
            {"application/x-troff","roff"},
            {"application/x-troff","t"},
            {"application/x-troff","tr"},
            {"application/x-troff-man","man"},
            {"application/x-troff-me","me"},
            {"application/x-troff-ms","ms"},
            {"application/x-ustar","ustar"},
            {"application/x-wais-source","src"},
            {"application/x-x509-ca-cert","cer"},
            {"application/x-x509-ca-cert","crt"},
            {"application/x-x509-ca-cert","der"},
            {"application/ynd.ms-pkipko","pko"},
            {"application/zip","zip"},
            {"audio/basic","au"},
            {"audio/basic","snd"},
            {"audio/mid","mid"},
            {"audio/mid","rmi"},
            {"audio/mpeg","mp3"},
            {"audio/x-aiff","aif"},
            {"audio/x-aiff","aifc"},
            {"audio/x-aiff","aiff"},
            {"audio/x-mpegurl","m3u"},
            {"audio/x-pn-realaudio","ra"},
            {"audio/x-pn-realaudio","ram"},
            {"audio/x-wav","wav"},
            {"image/bmp","bmp"},
            {"image/cis-cod","cod"},
            {"image/gif","gif"},
            {"image/ief","ief"},
            {"image/jpeg","jpe"},
            {"image/jpeg","jpeg"},
            {"image/jpeg","jpg"},
            {"image/pipeg","jfif"},
            {"image/svg+xml","svg"},
            {"image/tiff","tif"},
            {"image/tiff","tiff"},
            {"image/x-cmu-raster","ras"},
            {"image/x-cmx","cmx"},
            {"image/x-icon","ico"},
            {"image/x-portable-anymap","pnm"},
            {"image/x-portable-bitmap","pbm"},
            {"image/x-portable-graymap","pgm"},
            {"image/x-portable-pixmap","ppm"},
            {"image/x-rgb","rgb"},
            {"image/x-xbitmap","xbm"},
            {"image/x-xpixmap","xpm"},
            {"image/x-xwindowdump","xwd"},
            {"message/rfc822","mht"},
            {"message/rfc822","mhtml"},
            {"message/rfc822","nws"},
            {"text/css","css"},
            {"text/h323","323"},
            {"text/html","htm"},
            {"text/html","html"},
            {"text/html","stm"},
            {"text/iuls","uls"},
            {"text/plain","bas"},
            {"text/plain","c"},
            {"text/plain","h"},
            {"text/plain","txt"},
            {"text/richtext","rtx"},
            {"text/scriptlet","sct"},
            {"text/tab-separated-values","tsv"},
            {"text/webviewhtml","htt"},
            {"text/x-component","htc"},
            {"text/x-setext","etx"},
            {"text/x-vcard","vcf"},
            {"video/mpeg","mp2"},
            {"video/mpeg","mpa"},
            {"video/mpeg","mpe"},
            {"video/mpeg","mpeg"},
            {"video/mpeg","mpg"},
            {"video/mpeg","mpv2"},
            {"video/quicktime","mov"},
            {"video/quicktime","qt"},
            {"video/x-la-asf","lsf"},
            {"video/x-la-asf","lsx"},
            {"video/x-ms-asf","asf"},
            {"video/x-ms-asf","asr"},
            {"video/x-ms-asf","asx"},
            {"video/x-msvideo","avi"},
            {"video/x-sgi-movie","movie"},
            {"x-world/x-vrml","flr"},
            {"x-world/x-vrml","vrml"},
            {"x-world/x-vrml","wrl"},
            {"x-world/x-vrml","wrz"},
            {"x-world/x-vrml","xaf"},
            {"x-world/x-vrml","xof"}
    };
    /**
    * 按照文件扩展名排列的 Mime 类型列表
    */
    String[][] MimeTableSecond = {
            {"*","application/octet-stream"},
            {"323","text/h323"},
            {"acx","application/internet-property-stream"},
            {"ai","application/postscript"},
            {"aif","audio/x-aiff"},
            {"aifc","audio/x-aiff"},
            {"aiff","audio/x-aiff"},
            {"asf","video/x-ms-asf"},
            {"asr","video/x-ms-asf"},
            {"asx","video/x-ms-asf"},
            {"au","audio/basic"},
            {"avi","video/x-msvideo"},
            {"axs","application/olescript"},
            {"bas","text/plain"},
            {"bcpio","application/x-bcpio"},
            {"bin","application/octet-stream"},
            {"bmp","image/bmp"},
            {"c","text/plain"},
            {"cat","application/vnd.ms-pkiseccat"},
            {"cdf","application/x-cdf"},
            {"cer","application/x-x509-ca-cert"},
            {"class","application/octet-stream"},
            {"clp","application/x-msclip"},
            {"cmx","image/x-cmx"},
            {"cod","image/cis-cod"},
            {"cpio","application/x-cpio"},
            {"crd","application/x-mscardfile"},
            {"crl","application/pkix-crl"},
            {"crt","application/x-x509-ca-cert"},
            {"csh","application/x-csh"},
            {"css","text/css"},
            {"dcr","application/x-director"},
            {"der","application/x-x509-ca-cert"},
            {"dir","application/x-director"},
            {"dll","application/x-msdownload"},
            {"dms","application/octet-stream"},
            {"doc","application/msword"},
            {"dot","application/msword"},
            {"dvi","application/x-dvi"},
            {"dxr","application/x-director"},
            {"eps","application/postscript"},
            {"etx","text/x-setext"},
            {"evy","application/envoy"},
            {"exe","application/octet-stream"},
            {"fif","application/fractals"},
            {"flr","x-world/x-vrml"},
            {"gif","image/gif"},
            {"gtar","application/x-gtar"},
            {"gz","application/x-gzip"},
            {"h","text/plain"},
            {"hdf","application/x-hdf"},
            {"hlp","application/winhlp"},
            {"hqx","application/mac-binhex40"},
            {"hta","application/hta"},
            {"htc","text/x-component"},
            {"htm","text/html"},
            {"html","text/html"},
            {"htt","text/webviewhtml"},
            {"ico","image/x-icon"},
            {"ief","image/ief"},
            {"iii","application/x-iphone"},
            {"ins","application/x-internet-signup"},
            {"isp","application/x-internet-signup"},
            {"jfif","image/pipeg"},
            {"jpe","image/jpeg"},
            {"jpeg","image/jpeg"},
            {"jpg","image/jpeg"},
            {"js","application/x-javascript"},
            {"latex","application/x-latex"},
            {"lha","application/octet-stream"},
            {"lsf","video/x-la-asf"},
            {"lsx","video/x-la-asf"},
            {"lzh","application/octet-stream"},
            {"m13","application/x-msmediaview"},
            {"m14","application/x-msmediaview"},
            {"m3u","audio/x-mpegurl"},
            {"man","application/x-troff-man"},
            {"mdb","application/x-msaccess"},
            {"me","application/x-troff-me"},
            {"mht","message/rfc822"},
            {"mhtml","message/rfc822"},
            {"mid","audio/mid"},
            {"mny","application/x-msmoney"},
            {"mov","video/quicktime"},
            {"movie","video/x-sgi-movie"},
            {"mp2","video/mpeg"},
            {"mp3","audio/mpeg"},
            {"mpa","video/mpeg"},
            {"mpe","video/mpeg"},
            {"mpeg","video/mpeg"},
            {"mpg","video/mpeg"},
            {"mpp","application/vnd.ms-project"},
            {"mpv2","video/mpeg"},
            {"ms","application/x-troff-ms"},
            {"mvb","application/x-msmediaview"},
            {"nws","message/rfc822"},
            {"oda","application/oda"},
            {"p10","application/pkcs10"},
            {"p12","application/x-pkcs12"},
            {"p7b","application/x-pkcs7-certificates"},
            {"p7c","application/x-pkcs7-mime"},
            {"p7m","application/x-pkcs7-mime"},
            {"p7r","application/x-pkcs7-certreqresp"},
            {"p7s","application/x-pkcs7-signature"},
            {"pbm","image/x-portable-bitmap"},
            {"pdf","application/pdf"},
            {"pfx","application/x-pkcs12"},
            {"pgm","image/x-portable-graymap"},
            {"pko","application/ynd.ms-pkipko"},
            {"pma","application/x-perfmon"},
            {"pmc","application/x-perfmon"},
            {"pml","application/x-perfmon"},
            {"pmr","application/x-perfmon"},
            {"pmw","application/x-perfmon"},
            {"pnm","image/x-portable-anymap"},
            {"pot,","application/vnd.ms-powerpoint"},
            {"ppm","image/x-portable-pixmap"},
            {"pps","application/vnd.ms-powerpoint"},
            {"ppt","application/vnd.ms-powerpoint"},
            {"prf","application/pics-rules"},
            {"ps","application/postscript"},
            {"pub","application/x-mspublisher"},
            {"qt","video/quicktime"},
            {"ra","audio/x-pn-realaudio"},
            {"ram","audio/x-pn-realaudio"},
            {"ras","image/x-cmu-raster"},
            {"rgb","image/x-rgb"},
            {"rmi","audio/mid"},
            {"roff","application/x-troff"},
            {"rtf","application/rtf"},
            {"rtx","text/richtext"},
            {"scd","application/x-msschedule"},
            {"sct","text/scriptlet"},
            {"setpay","application/set-payment-initiation"},
            {"setreg","application/set-registration-initiation"},
            {"sh","application/x-sh"},
            {"shar","application/x-shar"},
            {"sit","application/x-stuffit"},
            {"snd","audio/basic"},
            {"spc","application/x-pkcs7-certificates"},
            {"spl","application/futuresplash"},
            {"src","application/x-wais-source"},
            {"sst","application/vnd.ms-pkicertstore"},
            {"stl","application/vnd.ms-pkistl"},
            {"stm","text/html"},
            {"svg","image/svg+xml"},
            {"sv4cpio","application/x-sv4cpio"},
            {"sv4crc","application/x-sv4crc"},
            {"swf","application/x-shockwave-flash"},
            {"t","application/x-troff"},
            {"tar","application/x-tar"},
            {"tcl","application/x-tcl"},
            {"tex","application/x-tex"},
            {"texi","application/x-texinfo"},
            {"texinfo","application/x-texinfo"},
            {"tgz","application/x-compressed"},
            {"tif","image/tiff"},
            {"tiff","image/tiff"},
            {"tr","application/x-troff"},
            {"trm","application/x-msterminal"},
            {"tsv","text/tab-separated-values"},
            {"txt","text/plain"},
            {"uls","text/iuls"},
            {"ustar","application/x-ustar"},
            {"vcf","text/x-vcard"},
            {"vrml","x-world/x-vrml"},
            {"wav","audio/x-wav"},
            {"wcm","application/vnd.ms-works"},
            {"wdb","application/vnd.ms-works"},
            {"wks","application/vnd.ms-works"},
            {"wmf","application/x-msmetafile"},
            {"wps","application/vnd.ms-works"},
            {"wri","application/x-mswrite"},
            {"wrl","x-world/x-vrml"},
            {"wrz","x-world/x-vrml"},
            {"xaf","x-world/x-vrml"},
            {"xbm","image/x-xbitmap"},
            {"xla","application/vnd.ms-excel"},
            {"xlc","application/vnd.ms-excel"},
            {"xlm","application/vnd.ms-excel"},
            {"xls","application/vnd.ms-excel"},
            {"xlt","application/vnd.ms-excel"},
            {"xlw","application/vnd.ms-excel"},
            {"xof","x-world/x-vrml"},
            {"xpm","image/x-xpixmap"},
            {"xwd","image/x-xwindowdump"},
            {"z","application/x-compress"},
            {"zip","application/zip"}
    };

来自小米文件管理器:

/*
 * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
 *
 * This file is part of FileExplorer.
 *
 * FileExplorer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * FileExplorer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with SwiFTP.  If not, see .
 */

package net.micode.fileexplorer;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * Utilities for dealing with MIME types.
 * Used to implement java.net.URLConnection and android.webkit.MimeTypeMap.
 */
public final class MimeUtils {
    private static final Map mimeTypeToExtensionMap = new HashMap();

    private static final Map extensionToMimeTypeMap = new HashMap();

    static {
        // The following table is based on /etc/mime.types data minus
        // chemical/* MIME types and MIME types that don't map to any
        // file extensions. We also exclude top-level domain names to
        // deal with cases like:
        //
        // mail.google.com/a/google.com
        //
        // and "active" MIME types (due to potential security issues).

        add("application/andrew-inset", "ez");
        add("application/dsptype", "tsp");
        add("application/futuresplash", "spl");
        add("application/hta", "hta");
        add("application/mac-binhex40", "hqx");
        add("application/mac-compactpro", "cpt");
        add("application/mathematica", "nb");
        add("application/msaccess", "mdb");
        add("application/oda", "oda");
        add("application/ogg", "ogg");
        add("application/pdf", "pdf");
        add("application/pgp-keys", "key");
        add("application/pgp-signature", "pgp");
        add("application/pics-rules", "prf");
        add("application/rar", "rar");
        add("application/rdf+xml", "rdf");
        add("application/rss+xml", "rss");
        add("application/zip", "zip");
        add("application/vnd.android.package-archive", "apk");
        add("application/vnd.cinderella", "cdy");
        add("application/vnd.ms-pki.stl", "stl");
        add("application/vnd.oasis.opendocument.database", "odb");
        add("application/vnd.oasis.opendocument.formula", "odf");
        add("application/vnd.oasis.opendocument.graphics", "odg");
        add("application/vnd.oasis.opendocument.graphics-template", "otg");
        add("application/vnd.oasis.opendocument.image", "odi");
        add("application/vnd.oasis.opendocument.spreadsheet", "ods");
        add("application/vnd.oasis.opendocument.spreadsheet-template", "ots");
        add("application/vnd.oasis.opendocument.text", "odt");
        add("application/vnd.oasis.opendocument.text-master", "odm");
        add("application/vnd.oasis.opendocument.text-template", "ott");
        add("application/vnd.oasis.opendocument.text-web", "oth");
        add("application/vnd.google-earth.kml+xml", "kml");
        add("application/vnd.google-earth.kmz", "kmz");
        add("application/msword", "doc");
        add("application/msword", "dot");
        add("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx");
        add("application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx");
        add("application/vnd.ms-excel", "xls");
        add("application/vnd.ms-excel", "xlt");
        add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx");
        add("application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx");
        add("application/vnd.ms-powerpoint", "ppt");
        add("application/vnd.ms-powerpoint", "pot");
        add("application/vnd.ms-powerpoint", "pps");
        add("application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx");
        add("application/vnd.openxmlformats-officedocument.presentationml.template", "potx");
        add("application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx");
        add("application/vnd.rim.cod", "cod");
        add("application/vnd.smaf", "mmf");
        add("application/vnd.stardivision.calc", "sdc");
        add("application/vnd.stardivision.draw", "sda");
        add("application/vnd.stardivision.impress", "sdd");
        add("application/vnd.stardivision.impress", "sdp");
        add("application/vnd.stardivision.math", "smf");
        add("application/vnd.stardivision.writer", "sdw");
        add("application/vnd.stardivision.writer", "vor");
        add("application/vnd.stardivision.writer-global", "sgl");
        add("application/vnd.sun.xml.calc", "sxc");
        add("application/vnd.sun.xml.calc.template", "stc");
        add("application/vnd.sun.xml.draw", "sxd");
        add("application/vnd.sun.xml.draw.template", "std");
        add("application/vnd.sun.xml.impress", "sxi");
        add("application/vnd.sun.xml.impress.template", "sti");
        add("application/vnd.sun.xml.math", "sxm");
        add("application/vnd.sun.xml.writer", "sxw");
        add("application/vnd.sun.xml.writer.global", "sxg");
        add("application/vnd.sun.xml.writer.template", "stw");
        add("application/vnd.visio", "vsd");
        add("application/x-abiword", "abw");
        add("application/x-apple-diskimage", "dmg");
        add("application/x-bcpio", "bcpio");
        add("application/x-bittorrent", "torrent");
        add("application/x-cdf", "cdf");
        add("application/x-cdlink", "vcd");
        add("application/x-chess-pgn", "pgn");
        add("application/x-cpio", "cpio");
        add("application/x-debian-package", "deb");
        add("application/x-debian-package", "udeb");
        add("application/x-director", "dcr");
        add("application/x-director", "dir");
        add("application/x-director", "dxr");
        add("application/x-dms", "dms");
        add("application/x-doom", "wad");
        add("application/x-dvi", "dvi");
        add("application/x-flac", "flac");
        add("application/x-font", "pfa");
        add("application/x-font", "pfb");
        add("application/x-font", "gsf");
        add("application/x-font", "pcf");
        add("application/x-font", "pcf.Z");
        add("application/x-freemind", "mm");
        add("application/x-futuresplash", "spl");
        add("application/x-gnumeric", "gnumeric");
        add("application/x-go-sgf", "sgf");
        add("application/x-graphing-calculator", "gcf");
        add("application/x-gtar", "gtar");
        add("application/x-gtar", "tgz");
        add("application/x-gtar", "taz");
        add("application/x-hdf", "hdf");
        add("application/x-ica", "ica");
        add("application/x-internet-signup", "ins");
        add("application/x-internet-signup", "isp");
        add("application/x-iphone", "iii");
        add("application/x-iso9660-image", "iso");
        add("application/x-jmol", "jmz");
        add("application/x-kchart", "chrt");
        add("application/x-killustrator", "kil");
        add("application/x-koan", "skp");
        add("application/x-koan", "skd");
        add("application/x-koan", "skt");
        add("application/x-koan", "skm");
        add("application/x-kpresenter", "kpr");
        add("application/x-kpresenter", "kpt");
        add("application/x-kspread", "ksp");
        add("application/x-kword", "kwd");
        add("application/x-kword", "kwt");
        add("application/x-latex", "latex");
        add("application/x-lha", "lha");
        add("application/x-lzh", "lzh");
        add("application/x-lzx", "lzx");
        add("application/x-maker", "frm");
        add("application/x-maker", "maker");
        add("application/x-maker", "frame");
        add("application/x-maker", "fb");
        add("application/x-maker", "book");
        add("application/x-maker", "fbdoc");
        add("application/x-mif", "mif");
        add("application/x-ms-wmd", "wmd");
        add("application/x-ms-wmz", "wmz");
        add("application/x-msi", "msi");
        add("application/x-ns-proxy-autoconfig", "pac");
        add("application/x-nwc", "nwc");
        add("application/x-object", "o");
        add("application/x-oz-application", "oza");
        add("application/x-pkcs12", "p12");
        add("application/x-pkcs7-certreqresp", "p7r");
        add("application/x-pkcs7-crl", "crl");
        add("application/x-quicktimeplayer", "qtl");
        add("application/x-shar", "shar");
        add("application/x-shockwave-flash", "swf");
        add("application/x-stuffit", "sit");
        add("application/x-sv4cpio", "sv4cpio");
        add("application/x-sv4crc", "sv4crc");
        add("application/x-tar", "tar");
        add("application/x-texinfo", "texinfo");
        add("application/x-texinfo", "texi");
        add("application/x-troff", "t");
        add("application/x-troff", "roff");
        add("application/x-troff-man", "man");
        add("application/x-ustar", "ustar");
        add("application/x-wais-source", "src");
        add("application/x-wingz", "wz");
        add("application/x-webarchive", "webarchive");
        add("application/x-webarchive-xml", "webarchivexml");
        add("application/x-x509-ca-cert", "crt");
        add("application/x-x509-user-cert", "crt");
        add("application/x-xcf", "xcf");
        add("application/x-xfig", "fig");
        add("application/xhtml+xml", "xhtml");
        add("audio/3gpp", "3gpp");
        add("audio/amr", "amr");
        add("audio/basic", "snd");
        add("audio/midi", "mid");
        add("audio/midi", "midi");
        add("audio/midi", "kar");
        add("audio/midi", "xmf");
        add("audio/mobile-xmf", "mxmf");
        add("audio/mpeg", "mpga");
        add("audio/mpeg", "mpega");
        add("audio/mpeg", "mp2");
        add("audio/mpeg", "mp3");
        add("audio/mpeg", "m4a");
        add("audio/mpegurl", "m3u");
        add("audio/prs.sid", "sid");
        add("audio/x-aiff", "aif");
        add("audio/x-aiff", "aiff");
        add("audio/x-aiff", "aifc");
        add("audio/x-gsm", "gsm");
        add("audio/x-mpegurl", "m3u");
        add("audio/x-ms-wma", "wma");
        add("audio/x-ms-wax", "wax");
        add("audio/x-pn-realaudio", "ra");
        add("audio/x-pn-realaudio", "rm");
        add("audio/x-pn-realaudio", "ram");
        add("audio/x-realaudio", "ra");
        add("audio/x-scpls", "pls");
        add("audio/x-sd2", "sd2");
        add("audio/x-wav", "wav");
        add("image/bmp", "bmp");
        add("audio/x-qcp", "qcp");
        add("image/gif", "gif");
        add("image/ico", "cur");
        add("image/ico", "ico");
        add("image/ief", "ief");
        add("image/jpeg", "jpeg");
        add("image/jpeg", "jpg");
        add("image/jpeg", "jpe");
        add("image/pcx", "pcx");
        add("image/png", "png");
        add("image/svg+xml", "svg");
        add("image/svg+xml", "svgz");
        add("image/tiff", "tiff");
        add("image/tiff", "tif");
        add("image/vnd.djvu", "djvu");
        add("image/vnd.djvu", "djv");
        add("image/vnd.wap.wbmp", "wbmp");
        add("image/x-cmu-raster", "ras");
        add("image/x-coreldraw", "cdr");
        add("image/x-coreldrawpattern", "pat");
        add("image/x-coreldrawtemplate", "cdt");
        add("image/x-corelphotopaint", "cpt");
        add("image/x-icon", "ico");
        add("image/x-jg", "art");
        add("image/x-jng", "jng");
        add("image/x-ms-bmp", "bmp");
        add("image/x-photoshop", "psd");
        add("image/x-portable-anymap", "pnm");
        add("image/x-portable-bitmap", "pbm");
        add("image/x-portable-graymap", "pgm");
        add("image/x-portable-pixmap", "ppm");
        add("image/x-rgb", "rgb");
        add("image/x-xbitmap", "xbm");
        add("image/x-xpixmap", "xpm");
        add("image/x-xwindowdump", "xwd");
        add("model/iges", "igs");
        add("model/iges", "iges");
        add("model/mesh", "msh");
        add("model/mesh", "mesh");
        add("model/mesh", "silo");
        add("text/calendar", "ics");
        add("text/calendar", "icz");
        add("text/comma-separated-values", "csv");
        add("text/css", "css");
        add("text/html", "htm");
        add("text/html", "html");
        add("text/h323", "323");
        add("text/iuls", "uls");
        add("text/mathml", "mml");
        // add ".txt" first so it will be the default for ExtensionFromMimeType
        add("text/plain", "txt");
        add("text/plain", "asc");
        add("text/plain", "text");
        add("text/plain", "diff");
        add("text/plain", "po");     // reserve "pot" for vnd.ms-powerpoint
        add("text/richtext", "rtx");
        add("text/rtf", "rtf");
        add("text/texmacs", "ts");
        add("text/text", "phps");
        add("text/tab-separated-values", "tsv");
        add("text/xml", "xml");
        add("text/x-bibtex", "bib");
        add("text/x-boo", "boo");
        add("text/x-c++hdr", "h++");
        add("text/x-c++hdr", "hpp");
        add("text/x-c++hdr", "hxx");
        add("text/x-c++hdr", "hh");
        add("text/x-c++src", "c++");
        add("text/x-c++src", "cpp");
        add("text/x-c++src", "cxx");
        add("text/x-chdr", "h");
        add("text/x-component", "htc");
        add("text/x-csh", "csh");
        add("text/x-csrc", "c");
        add("text/x-dsrc", "d");
        add("text/x-haskell", "hs");
        add("text/x-java", "java");
        add("text/x-literate-haskell", "lhs");
        add("text/x-moc", "moc");
        add("text/x-pascal", "p");
        add("text/x-pascal", "pas");
        add("text/x-pcs-gcd", "gcd");
        add("text/x-setext", "etx");
        add("text/x-tcl", "tcl");
        add("text/x-tex", "tex");
        add("text/x-tex", "ltx");
        add("text/x-tex", "sty");
        add("text/x-tex", "cls");
        add("text/x-vcalendar", "vcs");
        add("text/x-vcard", "vcf");
        add("video/3gpp", "3gpp");
        add("video/3gpp", "3gp");
        add("video/3gpp", "3g2");
        add("video/dl", "dl");
        add("video/dv", "dif");
        add("video/dv", "dv");
        add("video/fli", "fli");
        add("video/m4v", "m4v");
        add("video/mpeg", "mpeg");
        add("video/mpeg", "mpg");
        add("video/mpeg", "mpe");
        add("video/mp4", "mp4");
        add("video/mpeg", "VOB");
        add("video/quicktime", "qt");
        add("video/quicktime", "mov");
        add("video/vnd.mpegurl", "mxu");
        add("video/webm", "webm");
        add("video/x-la-asf", "lsf");
        add("video/x-la-asf", "lsx");
        add("video/x-mng", "mng");
        add("video/x-ms-asf", "asf");
        add("video/x-ms-asf", "asx");
        add("video/x-ms-wm", "wm");
        add("video/x-ms-wmv", "wmv");
        add("video/x-ms-wmx", "wmx");
        add("video/x-ms-wvx", "wvx");
        add("video/x-msvideo", "avi");
        add("video/x-sgi-movie", "movie");
        add("x-conference/x-cooltalk", "ice");
        add("x-epoc/x-sisx-app", "sisx");
        applyOverrides();
    }

    private static void add(String mimeType, String extension) {
        //
        // if we have an existing x --> y mapping, we do not want to
        // override it with another mapping x --> ?
        // this is mostly because of the way the mime-type map below
        // is constructed (if a mime type maps to several extensions
        // the first extension is considered the most popular and is
        // added first; we do not want to overwrite it later).
        //
        if (!mimeTypeToExtensionMap.containsKey(mimeType)) {
            mimeTypeToExtensionMap.put(mimeType, extension);
        }
        extensionToMimeTypeMap.put(extension, mimeType);
    }

    private static InputStream getContentTypesPropertiesStream() {
        // User override?
        String userTable = System.getProperty("content.types.user.table");
        if (userTable != null) {
            File f = new File(userTable);
            if (f.exists()) {
                try {
                    return new FileInputStream(f);
                } catch (IOException ignored) {
                }
            }
        }

        // Standard location?
        File f = new File(System.getProperty("java.home"), "lib" + File.separator + "content-types.properties");
        if (f.exists()) {
            try {
                return new FileInputStream(f);
            } catch (IOException ignored) {
            }
        }

        return null;
    }

    /**
     * This isn't what the RI does. The RI doesn't have hard-coded defaults, so supplying your
     * own "content.types.user.table" means you don't get any of the built-ins, and the built-ins
     * come from "$JAVA_HOME/lib/content-types.properties".
     */
    private static void applyOverrides() {
        // Get the appropriate InputStream to read overrides from, if any.
        InputStream stream = getContentTypesPropertiesStream();
        if (stream == null) {
            return;
        }

        try {
            try {
                // Read the properties file...
                Properties overrides = new Properties();
                overrides.load(stream);
                // And translate its mapping to ours...
                for (Map.Entry entry : overrides.entrySet()) {
                    String extension = (String) entry.getKey();
                    String mimeType = (String) entry.getValue();
                    add(mimeType, extension);
                }
            } finally {
                stream.close();
            }
        } catch (IOException ignored) {
        }
    }

    private MimeUtils() {
    }

    /**
     * Returns true if the given MIME type has an entry in the map.
     * @param mimeType A MIME type (i.e. text/plain)
     * @return True iff there is a mimeType entry in the map.
     */
    public static boolean hasMimeType(String mimeType) {
        if (mimeType == null || mimeType.isEmpty()) {
            return false;
        }
        return mimeTypeToExtensionMap.containsKey(mimeType);
    }

    /**
     * Returns the MIME type for the given extension.
     * @param extension A file extension without the leading '.'
     * @return The MIME type for the given extension or null iff there is none.
     */
    public static String guessMimeTypeFromExtension(String extension) {
        if (extension == null || extension.isEmpty()) {
            return null;
        }
        return extensionToMimeTypeMap.get(extension);
    }

    /**
     * Returns true if the given extension has a registered MIME type.
     * @param extension A file extension without the leading '.'
     * @return True iff there is an extension entry in the map.
     */
    public static boolean hasExtension(String extension) {
        if (extension == null || extension.isEmpty()) {
            return false;
        }
        return extensionToMimeTypeMap.containsKey(extension);
    }

    /**
     * Returns the registered extension for the given MIME type. Note that some
     * MIME types map to multiple extensions. This call will return the most
     * common extension for the given MIME type.
     * @param mimeType A MIME type (i.e. text/plain)
     * @return The extension for the given MIME type or null iff there is none.
     */
    public static String guessExtensionFromMimeType(String mimeType) {
        if (mimeType == null || mimeType.isEmpty()) {
            return null;
        }
        return mimeTypeToExtensionMap.get(mimeType);
    }
}

键值对颠倒整理

("ez","application/andrew-inset")
("tsp","application/dsptype")
("spl","application/futuresplash")
("hta","application/hta")
("hqx","application/mac-binhex40")
("cpt","application/mac-compactpro")
("nb","application/mathematica")
("mdb","application/msaccess")
("oda","application/oda")
("ogg","application/ogg")
("pdf","application/pdf")
("key","application/pgp-keys")
("pgp","application/pgp-signature")
("prf","application/pics-rules")
("rar","application/rar")
("rdf","application/rdf+xml")
("rss","application/rss+xml")
("zip","application/zip")
("apk","application/vnd.android.package-archive")
("cdy","application/vnd.cinderella")
("stl","application/vnd.ms-pki.stl")
("odb","application/vnd.oasis.opendocument.database")
("odf","application/vnd.oasis.opendocument.formula")
("odg","application/vnd.oasis.opendocument.graphics")
("otg","application/vnd.oasis.opendocument.graphics-template")
("odi","application/vnd.oasis.opendocument.image")
("ods","application/vnd.oasis.opendocument.spreadsheet")
("ots","application/vnd.oasis.opendocument.spreadsheet-template")
("odt","application/vnd.oasis.opendocument.text")
("odm","application/vnd.oasis.opendocument.text-master")
("ott","application/vnd.oasis.opendocument.text-template")
("oth","application/vnd.oasis.opendocument.text-web")
("kml","application/vnd.google-earth.kml+xml")
("kmz","application/vnd.google-earth.kmz")
("doc","application/msword")
("dot","application/msword")
("docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document")
("dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template")
("xls","application/vnd.ms-excel")
("xlt","application/vnd.ms-excel")
("xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
("xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template")
("ppt","application/vnd.ms-powerpoint")
("pot","application/vnd.ms-powerpoint")
("pps","application/vnd.ms-powerpoint")
("pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation")
("potx","application/vnd.openxmlformats-officedocument.presentationml.template")
("ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow")
("cod","application/vnd.rim.cod")
("mmf","application/vnd.smaf")
("sdc","application/vnd.stardivision.calc")
("sda","application/vnd.stardivision.draw")
("sdd","application/vnd.stardivision.impress")
("sdp","application/vnd.stardivision.impress")
("smf","application/vnd.stardivision.math")
("sdw","application/vnd.stardivision.writer")
("vor","application/vnd.stardivision.writer")
("sgl","application/vnd.stardivision.writer-global")
("sxc","application/vnd.sun.xml.calc")
("stc","application/vnd.sun.xml.calc.template")
("sxd","application/vnd.sun.xml.draw")
("std","application/vnd.sun.xml.draw.template")
("sxi","application/vnd.sun.xml.impress")
("sti","application/vnd.sun.xml.impress.template")
("sxm","application/vnd.sun.xml.math")
("sxw","application/vnd.sun.xml.writer")
("sxg","application/vnd.sun.xml.writer.global")
("stw","application/vnd.sun.xml.writer.template")
("vsd","application/vnd.visio")
("abw","application/x-abiword")
("dmg","application/x-apple-diskimage")
("bcpio","application/x-bcpio")
("torrent","application/x-bittorrent")
("cdf","application/x-cdf")
("vcd","application/x-cdlink")
("pgn","application/x-chess-pgn")
("cpio","application/x-cpio")
("deb","application/x-debian-package")
("udeb","application/x-debian-package")
("dcr","application/x-director")
("dir","application/x-director")
("dxr","application/x-director")
("dms","application/x-dms")
("wad","application/x-doom")
("dvi","application/x-dvi")
("flac","application/x-flac")
("pfa","application/x-font")
("pfb","application/x-font")
("gsf","application/x-font")
("pcf","application/x-font")
("pcf.z","application/x-font")
("mm","application/x-freemind")
("spl","application/x-futuresplash")
("gnumeric","application/x-gnumeric")
("sgf","application/x-go-sgf")
("gcf","application/x-graphing-calculator")
("gtar","application/x-gtar")
("tgz","application/x-gtar")
("taz","application/x-gtar")
("hdf","application/x-hdf")
("ica","application/x-ica")
("ins","application/x-internet-signup")
("isp","application/x-internet-signup")
("iii","application/x-iphone")
("iso","application/x-iso9660-image")
("jmz","application/x-jmol")
("chrt","application/x-kchart")
("kil","application/x-killustrator")
("skp","application/x-koan")
("skd","application/x-koan")
("skt","application/x-koan")
("skm","application/x-koan")
("kpr","application/x-kpresenter")
("kpt","application/x-kpresenter")
("ksp","application/x-kspread")
("kwd","application/x-kword")
("kwt","application/x-kword")
("latex","application/x-latex")
("lha","application/x-lha")
("lzh","application/x-lzh")
("lzx","application/x-lzx")
("frm","application/x-maker")
("maker","application/x-maker")
("frame","application/x-maker")
("fb","application/x-maker")
("book","application/x-maker")
("fbdoc","application/x-maker")
("mif","application/x-mif")
("wmd","application/x-ms-wmd")
("wmz","application/x-ms-wmz")
("msi","application/x-msi")
("pac","application/x-ns-proxy-autoconfig")
("nwc","application/x-nwc")
("o","application/x-object")
("oza","application/x-oz-application")
("p12","application/x-pkcs12")
("p7r","application/x-pkcs7-certreqresp")
("crl","application/x-pkcs7-crl")
("qtl","application/x-quicktimeplayer")
("shar","application/x-shar")
("swf","application/x-shockwave-flash")
("sit","application/x-stuffit")
("sv4cpio","application/x-sv4cpio")
("sv4crc","application/x-sv4crc")
("tar","application/x-tar")
("texinfo","application/x-texinfo")
("texi","application/x-texinfo")
("t","application/x-troff")
("roff","application/x-troff")
("man","application/x-troff-man")
("ustar","application/x-ustar")
("src","application/x-wais-source")
("wz","application/x-wingz")
("webarchive","application/x-webarchive")
("webarchivexml","application/x-webarchive-xml")
("crt","application/x-x509-ca-cert")
("crt","application/x-x509-user-cert")
("xcf","application/x-xcf")
("fig","application/x-xfig")
("xhtml","application/xhtml+xml")
("3gpp","audio/3gpp")
("amr","audio/amr")
("snd","audio/basic")
("mid","audio/midi")
("midi","audio/midi")
("kar","audio/midi")
("xmf","audio/midi")
("mxmf","audio/mobile-xmf")
("mpga","audio/mpeg")
("mpega","audio/mpeg")
("mp2","audio/mpeg")
("mp3","audio/mpeg")
("m4a","audio/mpeg")
("m3u","audio/mpegurl")
("sid","audio/prs.sid")
("aif","audio/x-aiff")
("aiff","audio/x-aiff")
("aifc","audio/x-aiff")
("gsm","audio/x-gsm")
("m3u","audio/x-mpegurl")
("wma","audio/x-ms-wma")
("wax","audio/x-ms-wax")
("ra","audio/x-pn-realaudio")
("rm","audio/x-pn-realaudio")
("ram","audio/x-pn-realaudio")
("ra","audio/x-realaudio")
("pls","audio/x-scpls")
("sd2","audio/x-sd2")
("wav","audio/x-wav")
("bmp","image/bmp")
("qcp","audio/x-qcp")
("gif","image/gif")
("cur","image/ico")
("ico","image/ico")
("ief","image/ief")
("jpeg","image/jpeg")
("jpg","image/jpeg")
("jpe","image/jpeg")
("pcx","image/pcx")
("png","image/png")
("svg","image/svg+xml")
("svgz","image/svg+xml")
("tiff","image/tiff")
("tif","image/tiff")
("djvu","image/vnd.djvu")
("djv","image/vnd.djvu")
("wbmp","image/vnd.wap.wbmp")
("ras","image/x-cmu-raster")
("cdr","image/x-coreldraw")
("pat","image/x-coreldrawpattern")
("cdt","image/x-coreldrawtemplate")
("cpt","image/x-corelphotopaint")
("ico","image/x-icon")
("art","image/x-jg")
("jng","image/x-jng")
("bmp","image/x-ms-bmp")
("psd","image/x-photoshop")
("pnm","image/x-portable-anymap")
("pbm","image/x-portable-bitmap")
("pgm","image/x-portable-graymap")
("ppm","image/x-portable-pixmap")
("rgb","image/x-rgb")
("xbm","image/x-xbitmap")
("xpm","image/x-xpixmap")
("xwd","image/x-xwindowdump")
("igs","model/iges")
("iges","model/iges")
("msh","model/mesh")
("mesh","model/mesh")
("silo","model/mesh")
("ics","text/calendar")
("icz","text/calendar")
("csv","text/comma-separated-values")
("css","text/css")
("htm","text/html")
("html","text/html")
("323","text/h323")
("uls","text/iuls")
("mml","text/mathml")
("txt","text/plain")
("asc","text/plain")
("text","text/plain")
("diff","text/plain")
("po","text/plain")
("rtx","text/richtext")
("rtf","text/rtf")
("ts","text/texmacs")
("phps","text/text")
("tsv","text/tab-separated-values")
("xml","text/xml")
("bib","text/x-bibtex")
("boo","text/x-boo")
("h++","text/x-c++hdr")
("hpp","text/x-c++hdr")
("hxx","text/x-c++hdr")
("hh","text/x-c++hdr")
("c++","text/x-c++src")
("cpp","text/x-c++src")
("cxx","text/x-c++src")
("h","text/x-chdr")
("htc","text/x-component")
("csh","text/x-csh")
("c","text/x-csrc")
("d","text/x-dsrc")
("hs","text/x-haskell")
("java","text/x-java")
("lhs","text/x-literate-haskell")
("moc","text/x-moc")
("p","text/x-pascal")
("pas","text/x-pascal")
("gcd","text/x-pcs-gcd")
("etx","text/x-setext")
("tcl","text/x-tcl")
("tex","text/x-tex")
("ltx","text/x-tex")
("sty","text/x-tex")
("cls","text/x-tex")
("vcs","text/x-vcalendar")
("vcf","text/x-vcard")
("3gpp","video/3gpp")
("3gp","video/3gpp")
("3g2","video/3gpp")
("dl","video/dl")
("dif","video/dv")
("dv","video/dv")
("fli","video/fli")
("m4v","video/m4v")
("mpeg","video/mpeg")
("mpg","video/mpeg")
("mpe","video/mpeg")
("mp4","video/mp4")
("vob","video/mpeg")
("qt","video/quicktime")
("mov","video/quicktime")
("mxu","video/vnd.mpegurl")
("webm","video/webm")
("lsf","video/x-la-asf")
("lsx","video/x-la-asf")
("mng","video/x-mng")
("asf","video/x-ms-asf")
("asx","video/x-ms-asf")
("wm","video/x-ms-wm")
("wmv","video/x-ms-wmv")
("wmx","video/x-ms-wmx")
("wvx","video/x-ms-wvx")
("avi","video/x-msvideo")
("movie","video/x-sgi-movie")
("ice","x-conference/x-cooltalk")
("sisx","x-epoc/x-sisx-app")


//一下重复内容仅仅是有两项重复了
//E/查重: spl
//E/查重: cpt
//E/查重: crt
//E/查重: 3gpp
//E/查重: m3u
//E/查重: ra
//E/查重: bmp
//E/查重: ico

提问:同一个后缀名对应多个MIME值是什么情况,怎么解释。希望有明白的能留言交流。

你可能感兴趣的:(小实验_们~~)