Я хочу иметь возможность создавать новый анализатор Tika для извлечения метаданных из файла. Мы уже используем Tika, и извлечение метаданных будет выполняться последовательно.
Я думаю, что столкнулся с этой проблемой / запросом улучшения для Тики:
Разрешить передачу файлов или буферов памяти парсерам
У меня есть исполняемый файл консоли c ++, который принимает путь к файлу на входе и затем выводит найденные метаданные, каждая строка состоит из пар имя / значение.
Код C ++ опирается на библиотеки, которые ожидают путь к файлу при доступе к данным.
Переписать этот исполняемый файл на Java невозможно.
Я думал, что это будет довольно легко подключить это к Тике. Но парсер Tika должен быть на Java, а метод парсера Tika, который необходимо переопределить, принимает открытый входной поток:
void parse (поток InputStream, обработчик ContentHandler, метаданные метаданных, контекст ParseContext)
Так что я думаю, что мое единственное решение - взять поток ввода и записать его во временный файл, а затем обработать записываемый файл и, наконец, очистить файл. Я ненавижу возиться с временным файлом, и, возможно, мне придется беспокоиться об очистке временных файлов, если что-то пойдет не так, и оно не будет удалено.
У кого-нибудь есть умное представление о том, как правильно справиться с чем-то вроде этого?