码迷,mamicode.com
首页 > 其他好文 > 详细

【Tika基础教程之一】Tika基础教程

时间:2014-06-25 19:31:16      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   java   http   



一、快速入门

1、Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等。


2、使用GUI界面解释文本

(1)进入Tika所有的目录,运行以下命令:

java -jar "tika-app-1.5 (1).jar" -g

bubuko.com,布布扣

(2)Tika的图形界面被打开,然后找开File-openURL:

bubuko.com,布布扣

(3)点击确认后,即返回解释结果

默认情况下显示的是文本的元信息

bubuko.com,布布扣

(4)可以通过view菜单中的选项,分别查看 metadata, formatted text, plain text, main content, stuctured text等信息。

bubuko.com,布布扣

3、调用API解释文件


package com.ljh.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;

public class TikaBasicUtil {
	
	public String fileToTxt(File f) {
		//1、创建一个parser
		Parser parser = new AutoDetectParser();
		InputStream is = null;
		try {
			Metadata metadata = new Metadata();
			metadata.set(Metadata.RESOURCE_NAME_KEY, f.getName());
			is = new FileInputStream(f);
			ContentHandler handler = new BodyContentHandler();
			ParseContext context = new ParseContext();
			context.set(Parser.class,parser);
			//2、执行parser的parse()方法。
			parser.parse(is,handler, metadata,context);
			for(String name:metadata.names()) {
				System.out.println(name+":"+metadata.get(name));
			}
			return handler.toString();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (TikaException e) {
			e.printStackTrace();
		} finally {
			try {
				if(is!=null) is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return null;
	}

}

测试程序如下:

package com.ljh.test;

import java.io.File;

import org.junit.Test;

public class TikaBasicUtilTest {

	@Test
	public void test() {
		TikaBasicUtil tbu = new TikaBasicUtil();
		System.out.println(tbu.fileToTxt(new File("D:/G组-C罗压哨助攻扳平 葡萄牙2-2美国保晋级希望.docx")));
	}

}
输出结果如下:

cp:revision:3
meta:last-author:lujinhong
Last-Author:lujinhong
meta:save-date:2014-06-23T04:24:00Z
Application-Name:Microsoft Office Word
dcterms:created:2014-06-23T04:23:00Z
Author:lujinhong
Application-Version:15.0000
Character-Count-With-Spaces:1188
date:2014-06-23T04:24:00Z
Total-Time:1
extended-properties:Template:Normal.dotm
meta:line-count:8
creator:lujinhong
publisher:
Word-Count:177
meta:paragraph-count:2
Creation-Date:2014-06-23T04:23:00Z
extended-properties:AppVersion:15.0000
meta:author:lujinhong
Line-Count:8
extended-properties:Application:Microsoft Office Word
resourceName:G组-C罗压哨助攻扳平 葡萄牙2-2美国保晋级希望.docx
Paragraph-Count:2
Last-Save-Date:2014-06-23T04:24:00Z
Revision-Number:3
meta:creation-date:2014-06-23T04:23:00Z
dcterms:modified:2014-06-23T04:24:00Z
Template:Normal.dotm
Page-Count:1
meta:character-count:1013
dc:creator:lujinhong
meta:word-count:177
Last-Modified:2014-06-23T04:24:00Z
extended-properties:Company:
modified:2014-06-23T04:24:00Z
xmpTPg:NPages:1
extended-properties:TotalTime:1
dc:publisher:
Character Count:1013
meta:page-count:1
meta:character-count-with-spaces:1188
Content-Type:application/vnd.openxmlformats-officedocument.wordprocessingml.document
上半时美国队开球。第5分钟,葡萄牙队率先进球,维罗索左路45度把球吊入禁区,美国后卫卡梅伦解围失误,纳尼在远门柱附近右脚抽射球门上角建功,葡萄牙1-0美国。
第9分钟,邓普西突破被断,无队友接应。第11分钟,美国长传反击,科斯塔头球解围。第12分钟,阿尔维斯铲倒约翰逊,美国队获得禁区前任意球,邓普西主罚大力攻门,球擦着横梁高出。第16分钟,葡萄牙中锋波斯蒂加受伤,被埃德换下。第18分钟,美国右路传中,邓普西禁区左肋抽射打高。
第24分钟,美国队后场断球反击,布拉德利禁区前抽射,球擦着横梁高出。第27分钟,祖西传球,邓普西禁区右肋抽射,科斯塔堵枪眼。1分钟后,布拉德利远射稍偏。第32分钟,美国反击,约翰逊远射打偏。第34分钟,维罗索远射打在后卫身上,C罗拿球被吹越位。
第35分钟,C罗远射被霍华德扑住。第40分钟,琼斯受伤,主裁判吹停比赛,进入喝水时间。第42分钟,葡萄牙反击,C罗分球,纳尼右路远射被扑出。第43分钟,葡萄牙获得禁区前任意球,C罗主罚打高。第45分钟,纳尼远射打中立柱,埃德补射被霍华德用指尖挡出。上半时结束,葡萄牙1-0美国。
下半时易边,葡萄牙队用卡瓦略换下阿尔梅达。第48分钟,卡梅伦解围打在队友被贝斯勒身上,埃德抢射打高。第55分钟,美国队错失良机,约翰逊右路下底传中,布拉德利5码处推射,科斯塔门线堵枪眼。第62分钟,葡萄牙反击,C罗禁区右肋射门打偏。
第64分钟,美国队扳平比分,角球罚出被后卫解围出禁区,琼斯外围拿球横向闪过纳尼,右脚大力抽射,球飞进球门死角,葡萄牙1-1美国。
第66分钟,葡萄牙反击,纳尼右路传中,远端梅雷莱斯抽射被门将扑出。第68分钟,葡萄牙用完第三个换人名额,瓦雷拉换下梅雷莱斯。第74分钟,纳尼突入禁区摔倒,裁判没有吹罚点球。1分钟后,琼斯滑铲放倒穆蒂尼奥,吃到黄牌。第80分钟,纳尼右路禁区前横切远射打高。
第81分钟,美国队反超比分!琼斯中路分球,叶德林右路下底传中,布拉德利12码处推射打在后卫身上,祖西左路拿球传中,邓普西用胸口把球撞进空门,美国2-1葡萄牙。
第86分钟,维罗索直塞,C罗在越位位置完成射门。葡萄牙右路起球,C罗头球攻门顶偏。第93分钟,葡萄牙左路起球,C罗头球顶偏。第95分钟,C罗右路传中,瓦雷拉头冲顶破门,2-2!全场结束,美国2-2葡萄牙。
葡萄牙(433):22-贝托/21-佩雷拉、2-阿尔维斯、13-科斯塔、19-A-阿尔梅达(46‘卡瓦略)/8-穆蒂尼奥、4-维罗索、16-梅雷莱斯(68‘瓦雷拉)/17-纳尼、23-波斯蒂加(16‘埃德)、7-C罗
美国(4231):1-霍华德/7-比斯利、5-贝斯勒、20-卡梅伦、23-F-约翰逊/15-贝克曼、13-琼斯/19-祖西(91‘冈萨雷斯)、11-贝多亚(72‘叶德林)、4-布拉德利/8-邓普西(87‘沃多洛斯基)






【Tika基础教程之一】Tika基础教程,布布扣,bubuko.com

【Tika基础教程之一】Tika基础教程

标签:style   class   blog   code   java   http   

原文地址:http://blog.csdn.net/jediael_lu/article/details/33399021

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!