tika in action之1.1.2(文库分析程序)

为了能够从数字文件中提取信息,你需要理解文件的格式。所编写的程序是为了与这些不同的文件一同工作(Suchunderstanding is built into the applications designed to work with specifickinds of documents.)。例如,微软office主键是用于读写word文档,然而Adobe Acrobat和Acrobat Reader也是用于读写PDF文档。这些程序通常被设计用来与用户交互,通常不允许其他的程序来使用这些程序获取对文档的操作能力。甚至,如果这些程序的能够被其他程序使用,这些程序通常不能在服务器环境中运行。

         一种可替换的途径是,实现或者使用一个文库解析器来作用于文件格式。一个文库解析器通常是一个可重复使用的软件,这些软件被程序用来读取某一种特定的文件,也可以对文件进行写操作(这些将会在图1.3中出现,软件可以从文件中提取文本和其他信息)。程序库将文件的格式抽象成一个api,对比原始的字节码形式,这样使得我们很容易地去理解和使用。比如,而不是不得不处理这些,例如CRC校验,压缩的方式,以及其他不同的细节,一个使用zip解析库包的程序,这个包所包含标准的java类库能够简单地使用这些概念,例如ZipFile和ZipEntry,正如在下面字段程序代码中,能够输出这个zip文件中所有实体文件的名称。

public static voidlistZipEntries(String path) throws IOException {
<span style="white-space:pre">	</span>ZipFile zip= new ZipFile(path);
<span style="white-space:pre">	</span>for(ZipEntry entry : Collections.list(zip.entries())) {
<span style="white-space:pre">		</span>System.out.println(entry.getName());
<span style="white-space:pre">	</span>}
}

    除了对zip文件的支持,这个标准的java类库和官方的扩展,包含了许多文件格式的支持,从对简单文本到对基于XML编写的不同图像、音频、视频以及其他信息格式文件。其他一些高级程序语言和平台有着相似的嵌入式能力。但是大多数文件的格式不是支持的,甚至支持这些格式的API经常被设计成特殊的用途,以及不能满足许多程序所需解析的功能。大多数开源和社区中的程序库都提供了相应的应用的下载地址。例如,使用最为广泛的ApachePDFBox(http://pdfbox.apache.org/)以及POI(http://poi.apache.org/)这些程序库实现了对PDF和微软办公文件的支持。

    奇妙的APIs世界    APIs,或者应用程序的接口,是一个接口,程序使用它与每一个应用程序进行交流。在面向对象的框架和程序库中,APIs通常是被推荐

    感谢解析程序库,使得建立一个可以识别多种不同文件格式的应用不再是一个难以克服的任务。但是对于许多复杂文件格式还没有包含在其中,从一开始了解这一系列的许可和专利,使得使用不同的程序库和文件格式被约束住。对于这些可使用的解析程序库来说,最大的问题是他们都有一套对于每一个文件格式的API。利用这些程序库来写一个程序,就需要花费许多时间和精力在学习这些程序库的API上。这时候,就需要一个统一的解析文件的API,使得这些解析器的APIs例如一个API将会在本质上成为数字文件的统一语言。
    在下一章节,我们将会对这个数组文件统一的语言做一个案例,来描述在词汇上的最低标准:结构化的文本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值