#java #apache-tika
Вопрос:
я использую tika для определения типа файла следующим образом :
InputStream inputstream = new ByteArrayInputStream(bytes);
metadata = new Metadata();
Tika tika = new Tika();
detectedType = tika.detect(inputstream);
если это pdf-файл, я анализирую его следующим образом :
PDFParser pdfparser = new PDFParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext pcontext = new ParseContext();
pdfparser.parse(in, handler, metadata,pcontext);
Мой вопрос : должен ли я создавать экземпляр tika/pdfparser/metadata/pcontext/обработчик при каждом вызове метода или я могу сделать это только один раз в конструкторе класса? Спасибо
Комментарии:
1. Парсеры Tika потокобезопасны, и вы должны иметь возможность создавать их статически и использовать в многопоточном режиме. Вам нужно будет создавать новые обработчики, метаданные и синтаксические тексты для каждого анализа. Отдельная тема: вы могли бы рассмотреть возможность использования автопарсера вместо жесткого кодирования «разбор PDF, если это PDF». Если вы не хотите анализировать все типы файлов, вы можете указать подмножество анализаторов, которые вы хотите запустить. Пожалуйста, спросите по user@tika.apache.org список рассылки ( tika.apache.org/mail-lists.html ) если у вас есть вопросы. Желаю удачи!