在开发全文检索功能时需要支持对附件的全文检索,这个时候需要读取附件的文本内容,故使用到了tika

tika介绍:以下来自百度百科

Apache Tika 利用现有的解析类库,从不同格式的文档中(例如HTML, PDF, Doc),侦测和提取出元数据和结构化内容。

功能包括:
侦测文档的类型,字符编码,语言,等其他现有文档的属性。
提取结构化的文字内容。
该项目的目标使用群体主要为搜索引擎以及其他内容索引和分析工具。编程语言为Java.
以下是使用案例:
package com.tika;

import java.io.File;
import java.io.IOException;

import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;

public class TestTika {
	public static void main(String[] args) throws IOException, TikaException {
		//Exception in thread "main" java.lang.AbstractMethodError: org.apache.crimson.tree.ElementNode2.getTextContent()Ljava/lang/String;
		//以下这行代码是为了解决上方的异常二添加的,作用是指定正确的工厂
		System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); 
		Tika tika = new Tika();
		File file = new File("D:\\体现核心价值观案例.docx");
		System.out.println(tika.parseToString(file));
	}
}





以下是tika的详细介绍:

支持的文档格式


目前支持的文档格式和对应的解析类库如下:
Tika 解析器类
格式
描述
Microsoft® Excel®
在所有的 Tika 版本中都有对 Excel 电子数据表的支持,基于的是 POI 的 HSSF 库。
Microsoft Word®(application/msword)
在所有的 Tika 版本中都有对 Word 文档的支持,基于的是 POI 的 HWPF 库。
Microsoft PowerPoint®
在所有的 Tika 版本中都有对 PowerPoint 演示的支持,基于的是 POI 的 HSLF 库。
Microsoft Visio® (application/vnd.visio)
在 Tika V0.2 中加入了对 Visio 图表的支持,基于的是 POI 的 HDGF 库。
Microsoft Outlook®
在 Tika V0.2 中加入了对 Outlook 消息的支持,基于的是 POI 的 HSMF 库。
GZIP 压缩 (application/x-gzip)
在 Tika V0.2 中加入了对 GZIP 的支持,基于的是 Java 5 类库中的 GZIPInputStream 类。
bzip2 压缩 (application/x-bzip)
在 Tika V0.2 中加入了对 bzip2 的支持,基于的是 Apache Ant 的 bzip2 解析代码,而它最初基于的是 Aftex Software 的 Keiron Liddle 的工作成果。
MP3 音频(audio/mpeg)
在 Tika V0.2 中加入了对 MP3 文件的 ID3v1 标记的解析。如果找到,如下的元数据将被提取并设置:
TITLETitleSUBJECTSubject
MIDI 音频 (audio/midi)
Tika 使用 javax.audio.midi 内的 MIDI 支持来解析 MIDI 序列文件。很多卡拉 OK 文件格式都基于的是 MIDI 并包含嵌入文本歌曲形式的歌词,并且 Tika 知道该如何提取。
Wave 音频 (audio/basic)
Tika 通过 javax.audio.sampled 包支持取样的 wave 音频(.wav 文件等)。只有取样元数据才被提取。
Extensible Markup Language (XML) (application/xml)
Tika 使用 javax.xml 类解析 XML 文件。
HyperText Markup Language (HTML) (text/html)
Tika 使用 CyberNeko 库解析 HTML 文件。
图像 (image/*)
Tika 使用 javax.imageio 类从图像文件中提取元数据
Java 类文件
Java 类文件的解析基于的是 ASM 库以及 JCR-1522 的 Dave Brosius 的工作成果。
Java Archive Files
JAR 文件的解析是综合使用 ZIP 和 Java 这两种类文件解析器完成的。
OpenDocument (application/vnd.oasis.opendocument.*)
Tika 使用 Java 语言中的内置 ZIP 和 XML 特性来解析多为 OpenOffice V2.0 或更高版本所用的 OpenDocument 文档类型。较早的 OpenOffice V1.0 格式也受支持,但它们目前不能像较新的格式那样被自动检测。
纯文本 (text/plain)
Tika 使用 International Components for Unicode Java 库(ICU4J)来解析纯文本。
Portable Document Format (PDF) (application/pdf)
Tika 使用 PDFBox 库来解析 PDF 文档。
Rich Text Format (RTF) (application/rtf)
Tika 使用 Java 的内置 Swing 库来解析 RTF 文档。
TAR (application/x-tar)
Tika 使用来自 Apache Ant 的 TAR 解析代码的调整版本来解析 TAR 文件。而此 TAR 代码基于的是 Timothy Gerard Endres 的工作成果。
ZIP (application/zip)
Tika 使用 Java 的内置 ZIP 类来解析 ZIP 文件。



浏览 1143 评论 0 赞 0 砸 0 标签: java组件 tika word
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款