package se.unlogic.standardutils.mime; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.InvalidPropertiesFormatException; import java.util.Properties; import java.util.Set; import java.util.Map.Entry; import se.unlogic.standardutils.io.FileUtils; public class MimeUtils { private static String UnknownMimeType = "application/x-unknown"; private static Properties MimeTypes = new Properties();; static{ try { MimeTypes.load(MimeUtils.class.getResourceAsStream("mimetypes.properties")); } catch (IOException e) {} } public static String getMimeType(File file){ return getMimeType(file.getName().toLowerCase()); } public static String getMimeType(String filename){ String fileExtension = FileUtils.getFileExtension(filename); if(fileExtension == null){ return UnknownMimeType; }else{ return MimeTypes.getProperty(fileExtension,UnknownMimeType); } } public static int getMimeTypeCount(){ return MimeTypes.size(); } public static Set<Entry<Object, Object>> getMimeTypes(){ return MimeTypes.entrySet(); } public static void loadMimeTypes(InputStream inputStream) throws IOException{ MimeTypes.clear(); MimeTypes.load(inputStream); } /* JDK 1.6 only! public void loadMimeTypes(Reader reader) throws IOException { MimeTypes.load(reader); } */ public void loadMimeTypesFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException { MimeTypes.loadFromXML(in); } }