Tika入门

本文介绍如何利用Apache Tika工具包解析各种文件格式的内容,包括核心库与解析器的Maven依赖配置,以及处理jpeg2000图片格式所需的额外组件。文中还提供了示例代码,展示如何获取文件类型、内容及元数据。

Tika是apache下的一个提取文件内容的工具包,废话不多说直接上代码

maven依赖:

<dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>${tika.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-parsers</artifactId>
            <version>${tika.version}</version>
        </dependency>

        <dependency>
            <groupId>com.github.jai-imageio</groupId>
            <artifactId>jai-imageio-jpeg2000</artifactId>
            <version>1.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
            <version>${sqlite.version}</version>
        </dependency>

其中前两个是Tika的主要工具包,core和parsers都要装,只装core会读不到内容

第三个是处理jpeg2000图片的,不引入并不影响使用,但会报如下警告:

J2KImageReader not loaded. JPEG2000 files will not be processed.

意思大概就是jpeg2000这种图片格式将不会被处理

官方文档https://pdfbox.apache.org/2.0/dependencies.html中写道:

 意思大概是处理jpeg2000这种格式的java组件不符合apache规范,所以需要引入第三方组件,官方给出的maven依赖试过了,但是没什么卵用,于是从maven仓库中找了一个,发现可以用。

第四个是sqlite驱动,不引入也不影响使用,但是也会有警告。

例子:

public static void main(String[] args) {
		File file = new File("E:\\source\\新建 DOC 文档.doc");
		Tika tika = new Tika();
		try {
			System.out.println("文件类型---"+tika.detect(file));
			System.out.println("文件内容---"+tika.parseToString(file));
			System.out.println("文件元数据---");
			Metadata metadata = new Metadata();
			new AutoDetectParser().parse(new FileInputStream(file), new BodyContentHandler(), metadata, new ParseContext());
			String[] names = metadata.names();
			for (String name : names) {
				System.out.println(name + ":" + metadata.get(name));
			}
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TikaException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		}
	}

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wheat_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值