Я попробовал несколько способов сделать это, включая первый, который сказал @Joshua Fox. Но некоторые не распознают частые mimetypes, как для файлов PDF, а другие не могут быть надежными с поддельными файлами (я пробовал с файлом RAR с расширением, измененным на TIF). Решение, которое я нашел, как также говорит @Joshua Fox поверхностно, заключается в использовании MimeUtil2 , например:
MimeUtil2 mimeUtil = new MimeUtil2();
mimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
String mimeType = MimeUtil2.getMostSpecificMimeType(mimeUtil.getMimeTypes(file)).toString();