MIME 標準
多用途Internet郵件擴展(MIME)標準,用於識別檔類型的最佳標準。這些標準的知識有助於在內部相互作用的流覽器。
當流覽器遇到一個媒體檔,它選擇可用它來顯示其內容的相容軟體。在情況下,它不具有任何合適的應用程式,以運行一個特定媒體檔,它建議用戶獲得合適的插件軟體。
Tika類型檢測
Tika支持MIME所提供的所有互聯網媒體檔類型。每當一個檔通過Tika檢測到該檔,其檔類型。檢測的介質類型,Tika內部通過以下機制。
檔擴展名
檢查檔擴展名是檢測的檔的格式的最簡單和最廣泛使用的方法。許多應用程式和操作系統提供這些擴展的支持。下麵所示是一些已知檔類型的擴展名。
檔案名 | 擴展名 |
---|---|
image | .jpg |
audio | .mp3 |
java archive file | .jar |
java class file | .class |
內容類型提示
每當從資料庫中檢索檔或將其附加到另一個文檔,可能會失去該檔的名稱或擴展名。在這種情況下,該檔所提供的元數據被用於檢測檔的擴展名。
魔術位元組
遵守檔的原始位元組,可以為每個檔找到一些獨特的字元模式。一些檔具有特殊的位元組首碼稱為被專門製成並包含在一個檔中,用於識別檔類型的目的魔術位元組。
例如,可以找到CA FE BA在一個PDF檔(十六進制格式)的一個java檔和PDF%(ASCII格式)。 Tika使用此信息來識別的檔的媒體類型。
字元編碼
檔純文本使用不同類型的字元編碼的編碼。這裏的主要挑戰是確定在檔中使用的字元編碼的類型。Tika 一樣的標記和位元組的頻率來識別所使用的純文本內容的編碼系統字元編碼技術。
XML根字元
為了檢測XML文檔,Tika解析XML文檔並提取,如根元素,命名空間和引用的架構,從檔的真實介質類型,可以找到的資訊。
使用Facade類類型檢測
facade類的detect() 方法被用於檢測文檔類型。這個方法接受一個檔作為輸入。下麵顯示的是檔類型檢測與Tika外觀類的示例程式。
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