Как получить тип носителя (MIME-тип) из файла с помощью Java? До сих пор я пробовал JMimeMagic и Mime-Util. Первый выдал мне исключения из памяти, второй не закрывает свои потоки должным образом.
Как бы вы исследовали файл, чтобы определить его фактический тип (не только на основе расширения)?
Однако, как указано в комментарии выше, встроенная таблица mime-типов довольно ограничена, не включая, например, MSWord и PDF. Итак, если вы хотите обобщить, вам нужно выйти за рамки встроенных библиотек, используя, например, Mime-Util (это отличная библиотека, использующая как расширение файла, так и содержимое).
Смотрите apidocs для получения дополнительной информации.
Ответ 4
JAF API является частью JDK 6. Посмотрите на javax.activation пакет.
Наиболее интересными классами являются javax.activation.MimeType - фактический держатель MIME-типа - и javax.activation.MimetypesFileTypeMap - класс, экземпляр которого может разрешать MIME-тип как строку для файла: