蒂卡(Tika)在检测到哑剧型后无法解析



我早先通过调用 tika.parseToString()的情况下成功地解析了各种文件,而无需设置任何自定义配置或元数据。现在,我需要根据Mime-Type过滤文件以解析。

我可以找到带有tika.detect(new BufferedInputStream(inputStream), new Metadata());的MIME型,但是当调用tika.parseToString()之后,Tika使用emptyParser,并且检测到的内容类型为"应用程序/八位钟"。这是默认的,这意味着Tika找不到它是哪种类型的文件。在尝试解析文件之前,我已经尝试在元数据中设置内容类型,但这导致了org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException。从我阅读的内容中,这意味着文件是畸形的,但是相同的文件在没有事先检查MIME类型的情况下成功解析。

detchect()是否对输入流进行操作,使解析器无法解析文件?

我正在使用相同的tika-Instance检查哑剧类型和解析,版本1.13

我的问题是由直接传递给解析方法的InputStream引起的。detect()标记并重置流传递的流,输入流不支持。将InputStream包装到TikainputStream(TikaInputStream stream = TikaInputStream.get(new BufferedInputStream(inputStream));)解决了问题。

相关内容

  • 没有找到相关文章

最新更新