介绍
Apache Tika 是一个开源的内容分析工具包,用于从各种文档格式中提取文本和元数据。它支持多种文档类型,包括但不限于文本文件、HTML、PDF、Microsoft Office 文档、图像文件等。Tika 的主要功能包括内容检测、文本提取和元数据提取。
官网
https://tika.apache.org/
Apache Tika 的功能
- 内容检测:识别文件的 MIME 类型。
- 文本提取:从文档中提取纯文本内容。
- 元数据提取:从文档中提取元数据(如标题、作者、创建日期等)。
与Springboot集成案例
添加pom依赖
<dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifactId><version>2.9.1</version></dependency><dependency><groupId>org.apache.tika</groupId><artifactId>tika-parsers-standard-package</artifactId><version>2.9.1</version></dependency>
创建工具类
public class MyFileUtils {public static String doParse(String filePath) throws TikaException, SAXException, IOException {try(InputStream inputStream = new FileInputStream(filePath)){BodyContentHandler handler = new BodyContentHandler(-1);Metadata metadata = new Metadata();ParseContext parseContext = new ParseContext();AutoDetectParser detectParser = new AutoDetectParser();detectParser.parse(inputStream, handler, metadata, parseContext);return handler.toString();}}}
测试
public class MyFileUtilsTest {public static void main(String[] args) {String filePath = "D:/tmp/测试附件.xls";String content = null;try {content = MyFileUtils.doParse(filePath);} catch (TikaException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println(content);}
}
- 输出