/*******************************************************************************
* Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se).
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0-standalone.html
******************************************************************************/
package se.unlogic.standardutils.mime;
import se.unlogic.standardutils.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.InvalidPropertiesFormatException;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
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());
}
public static String getMimeType(String filename){
String fileExtension = FileUtils.getFileExtension(filename);
if(fileExtension == null){
return UnknownMimeType;
}else{
return MimeTypes.getProperty(fileExtension.toLowerCase(),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);
}
}