Я пытаюсь выяснить тип содержимого файла, используя апачский TIKA.Apache Тика детектирование возвращается противоречивый результат
означает, в то время как я нашел это противоречивое поведение.
final Tika tika = new Tika();
String fileType = tika.detect(uploadedInputStream);
System.out.println(fileType);
String newFileType = tika.detect(uploadedInputStream);
System.out.println(newFileType);
приведенный выше код дает мне кладется как
application/pdf
application/octet-stream
Я ожидаю выход, как application/pdf
в обоих случаях.
Может кто-нибудь объяснить, почему это происходит, как это? как я могу получить предполагаемый результат?
Apache Тика имеет несколько требований о том, какой InputStream он может обнаруживать, не изменяя его состояние. Что произойдет, если вы попробуете обернуть свою продукцию в TikaInputStream? – Gagravarr
Большое спасибо, этот помог мне. Не могли бы вы, пожалуйста, тел мне больше о, почему это происходит с нормальным InputStream и как TikaInputStream решаемые его – manoj
Когда Тика делается обнаружения, он должен перемотать поток для следующего пользователя (например, второй обнаружения). Если ваш поток утверждает, что поддерживает перемотку, но на самом деле это не так, тогда эти байты исчезнут, и вы набиты .... – Gagravarr