URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [gnu/] [gcj/] [io/] [MimeTypes.java] - Rev 14
Compare with Previous | Blame | View Log
/* Copyright (C) 2000 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package gnu.gcj.io; import java.util.*; import java.io.*; public class MimeTypes { private static Hashtable mime_types; public static void fillFromFile (Hashtable table, String fname) throws IOException { LineNumberReader reader = new LineNumberReader (new FileReader (fname)); while (reader.ready ()) { StringTokenizer tokenizer = new StringTokenizer (reader.readLine ()); try { String t = tokenizer.nextToken (); if (! t.startsWith ("#")) { while (true) { // Read the next extension String e = tokenizer.nextToken (); if ((e != null) && (! e.startsWith ("#"))) table.put (e, t); else break; } } } catch (NoSuchElementException ex) { // Do nothing. } } } // This is the primary interface to this class. public static String getMimeTypeFromExtension (String extension) { if (mime_types == null) { mime_types = new Hashtable (); // First populate the hash table with the default mime type // mappings. int i = DefaultMimeTypes.types.length; while (i > 1) { mime_types.put (DefaultMimeTypes.types[i - 2], DefaultMimeTypes.types[i - 1]); i = i - 2; } // Now read mime types from /etc/mime.types if it exists. // This should override the default values. try { fillFromFile (mime_types, "/etc/mime.types"); } catch (IOException ex) { // Do nothing. } // Now read mime types from ~/.mime.types. // FIXME: We can't currently parse this file. } String type = (String) mime_types.get (extension); if (type == null) return ("application/octet-stream"); else return (type); } }