介紹
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);}
}
- 輸出