【发布时间】:2020-06-05 15:13:51
【问题描述】:
我希望 Tika 仅输出文件的文件名和 MIME 类型。 我用 RecursiveParserWrapperHandler 找到了一些解决方案,但问题是 BodyContentHandler 总是尝试解析整个文件并将文本放入正文内容中。在我的情况下,我只需要 Map(fileName, MIMEType) 作为返回结果,而不需要解析整个文件。 我怎样才能做到这一点?
static public List<Metadata> recursiveParserWrapperExample() throws IOException,
SAXException, TikaException {
Parser p = new AutoDetectParser();
ContentHandlerFactory factory = new BasicContentHandlerFactory(
BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p);
Metadata metadata = new Metadata();
metadata.set(TikaCoreProperties.ORIGINAL_RESOURCE_NAME, "test.rar");
ParseContext context = new ParseContext();
RecursiveParserWrapperHandler handler = new RecursiveParserWrapperHandler(factory, -1);
try (InputStream stream = new FileInputStream(new File("C:\\Users\\alex\\home\\projects\\self\\zip\\test.rar"))) {
wrapper.parse(stream, handler, metadata, context);
}
return handler.getMetadataList();
}
【问题讨论】:
标签: java parsing apache-tika