Java get Dateityp von Inhalt mit Mimeutil funktioniert nicht wie erwartet

In meinem folgenden Code:

MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
File f = new File ("c:\\temp\\mime\\java.exe");
Collection<?> mimeTypes = MimeUtil.getMimeTypes("c:\\temp\\mime\\java.exe");
MimeType m = mimeTypes.toArray(new MimeType[mimeTypes.size()])[0];
System.out.println(m);

Die Ausgabe ist immer application / octet-stream, unabhängig davon, welcher Dateityp ausgewählt wurde, z. B. csv, xls, exe usw.

Aber laut folgender Seite:

http://www.rgagnon.com/javadetails/java-0487.html

es sollte wie ms-word oder ms-excel usw. angezeigt werden

Wie mache ich das? Ich möchte nur den Dateityp aus dem Dateiinhalt abrufen (nicht mit einer Dateierweiterung, die nicht sehr zuverlässig ist). Ich las über andere Optionen wie tika, das zu viele Dateien erfordert (wie 20), was zu viel für diesen einen Zweck ist, und JMimeMagic, das Apache-oro erfordert, das ein totes Projekt ist, daher mag ich die Idee auch nicht. Alle anderen Lösungen scheinen auf Dateierweiterungen zu beruhen, die, wie oben erwähnt, nicht zuverlässig zu sein scheinen.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage