Tika入门

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();
		}
	}

猜你喜欢

转载自blog.csdn.net/weixin_39841589/article/details/84594441