Tika是一个内容抽取的工具集合(a toolkit for text extracting)。利用Tika,我们可以获得文件的实际类型(https://blog.csdn.net/helihongzhizhuo/article/details/90404387 )、文件的编码格式(https://blog.csdn.net/helihongzhizhuo/article/details/90401777)、字符串的语言、文件的文本内容。
在当前的2.0.0-SNAPSHOT版本中, Tika提供了对如下文件格式的支持:
PDF - 通过Pdfbox
MS-* - 通过POI
HTML - 使用nekohtml将不规范的html整理成为xhtml
OpenOffice 格式 - Tika提供
Archive - zip, tar, gzip, bzip等
RTF - Tika提供
Java class - Class解析由ASM完成
Image - 只支持图像的元数据抽取
XML
Tika的API十分便捷,核心是Parser interface,其中定义了一个parse方法:
public void parse(InputStream stream, ContentHandler handler, Metadata metadata)
用stream参数传递需要解析的文件流, 文本内容会被传入handler,而元数据会更新至metadata。
可以使用Tika的ParserUtils工具来根据文件的mime-type来得到一个适当的Parser来进行解析工作。或者Tika还提供了一个AutoDetectParser根据不同的二进制文件的特殊格式 (比如说Magic Code),来寻找适合的Parser。
项目请见: