Tika 简明教程
TIKA - Document Type Detection
MIME Standards
多用途因特网邮件扩展 (MIME) 标准是识别文档类型的最佳可用标准。了解这些标准有助于浏览器在内部交互期间。
无论何时浏览器遇到媒体文件,它都会选择与其兼容的可用软件来显示其内容。如果浏览器没有任何合适的应用程序来运行某个特定的媒体文件,它会建议用户获取合适的插件软件。
Type Detection in Tika
Tika 支持 MIME 中提供的所有 Internet 媒体文档类型。无论何时文件通过 Tika,它都会检测出来文件及其文档类型。为检测媒体类型,Tika 在内部使用以下机制。
File Extensions
检查文件扩展名是检测文件格式最简单且最广泛使用的方法。许多应用程序和操作系统都支持这些扩展名。下面显示的是一些已知文件类型 的扩展名。
File name |
Extention |
image |
.jpg |
audio |
.mp3 |
java archive file |
.jar |
java class file |
.class |
Magic Byte
观察文件的原始字节,您可以找到每个文件的某些唯一字符模式。某些文件具有称为 magic bytes 的特殊字节前缀,这些字节前缀是专门为 识别文件类型而在文件中制作和包含的。
例如,您能在 java 文件中找到 CA FE BA BE(十六进制格式)和在 pdf 文件中找到 %PDF(ASCII 格式)。Tika 使用此信息来识别文件的媒体类型。
Type Detection using Facade Class
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.java
java TypeDetection
audio/mpeg