Есть ли библиотека java, эквивалентная файловой команде в unix

Есть ли какая-либо java-библиотека, похожая на команду unix file?

т.е.:

$ file somepicture.png
somepicture.png PNG image, 805 x 292, 8-bit/color RGB, non-interlaced

Команда файла - такой хороший инструмент. Мне нужно что-то, что может сказать мне, действительно ли файл, какой я хочу. (например, изображение, документ и т.д.)

Я знаю, что могу запустить команду file, но я ищу java-библиотеку, не выполняющую действительную команду unix.

Ответы

Ответ 2

Начиная с Java 1.7 вы можете использовать Files.probeContentType() для поиска файла. Вне коробки он использует механизм на платформе, чтобы угадать тип содержимого, или вы можете подключить свой собственный детектор, если хотите.

Ответ 3

Вы можете посмотреть jmimemagic (учебник). Мы использовали его некоторое время для проверки загруженных изображений. На данный момент проблем нет.

Ответ 5

Посмотрите mime-utils. Он работает с контентом и/или с расширением.

Ответ 7

Искал то же самое и нашел это: https://github.com/j256/simplemagic - похоже, это клон "файла", он даже использует копию файла, встроенную в волшебный файл.