开发手册 欢迎您!
软件开发者资料库

TIKA - 文件类型检测

TIKA文档类型检测 - 从简单和简单的步骤学习TIKA,从基本到高级概念,包括概述,体系结构,环境,参考API,文件格式,文档类型检测,内容提取,元数据提取,语言检测,GUI,提取PDF ,提取ODF,提取MS-Office文件,提取文本文档,提取HTML文档,提取XML文档,提取.class文件,提取JAR文件,提取图像文件,提取mp4文件,提取mp3文件。

MIME标准

多用途Internet邮件扩展(MIME)标准是用于标识文档类型的最佳可用标准.这些标准的知识有助于浏览器在内部交互过程中.

每当浏览器遇到媒体文件时,它就会选择一个兼容的软件来显示其内容.如果它没有任何合适的应用程序来运行特定的媒体文件,它建议用户为它获取合适的插件软件.

Tika中的类型检测

Tika支持MIME中提供的所有Internet媒体文档类型.每当文件通过Tika传递时,它都会检测文件及其文档类型.为了检测媒体类型,Tika内部使用以下机制.

文件扩展名

检查文件扩展名是最简单和最广泛使用的方法检测文件的格式.许多应用程序和操作系统都为这些扩展提供支持.下面显示的是几种已知文件类型的扩展.

文件名Extention
image.jpg
audio.mp3
java档案文件.jar
java类文件.class

内容类型提示

每当检索文件时从数据库或将其附加到另一个文档,您可能会丢失文件的名称或扩展名.在这种情况下,随文件提供的元数据用于检测文件扩展名.

Magic Byte

观察文件的原始字节,您可以为每个文件找到一些独特的字符模式.有些文件具有特殊的字节前缀,称为魔术字节,它们是专门制作的并包含在文件中以便识别文件类型

例如,你可以找到CA FE BA BE(十六进制格式)在java文件中,%PDF(ASCII格式)在pdf文件中. Tika使用此信息来识别文件的媒体类型.

字符编码

使用不同类型的字符编码对纯文本文件进行编码.这里的主要挑战是识别文件中使用的字符编码的类型. Tika遵循字符编码技术,如 Bom标记 Byte Frequencies 来识别纯文本内容使用的编码系统.

XML Root字符

为了检测XML文档,Tika解析xml文档并从中找到可以找到文件的真实媒体类型的根元素,命名空间和引用模式等信息./p>

使用Facade类进行类型检测

facade类的 detect()方法用于检测文档类型.此方法接受文件作为输入.下面显示的是使用Tika facade类检测文档类型的示例程序.

import java.io.File;import org.apache.tika.Tika;public class Typedetection {   public static void main(String[] args) throws Exception {      //assume example.mp3 is in your current directory      File file = new File("example.mp3");//            //Instantiating tika facade class       Tika tika = new Tika();            //detecting the file type using detect method      String filetype = tika.detect(file);      System.out.println(filetype);   }}

将上述代码保存为TypeDetection.java并使用以下命令从命令提示符运行它 :

javac TypeDetection.javajava TypeDetection audio/mpeg