TIKA - 文件型別檢測



MIME 標準

多用途網際網路郵件擴充套件 (MIME) 標準是識別文件型別的最佳可用標準。瞭解這些標準有助於瀏覽器在內部互動過程中。

每當瀏覽器遇到媒體檔案時,它都會選擇與其一起使用的相容軟體來顯示其內容。如果它沒有任何合適的應用程式來執行特定的媒體檔案,它會建議使用者獲取合適的外掛軟體。

Tika 中的型別檢測

Tika 支援 MIME 中提供的所有網際網路媒體文件型別。每當檔案透過 Tika 傳遞時,它都會檢測檔案及其文件型別。為了檢測媒體型別,Tika 在內部使用以下機制。

副檔名

檢查副檔名是檢測檔案格式最簡單且最廣泛使用的方法。許多應用程式和作業系統都支援這些副檔名。以下是幾種已知檔案型別的副檔名。

檔名 副檔名
影像 .jpg
音訊 .mp3
Java 歸檔檔案 .jar
Java 類檔案 .class

內容型別提示

每當您從資料庫檢索檔案或將其附加到另一個文件時,您可能會丟失檔案的名稱或副檔名。在這種情況下,使用與檔案一起提供的元資料來檢測副檔名。

魔術位元組

觀察檔案的原始位元組,您可以為每個檔案找到一些獨特的字元模式。某些檔案具有特殊的位元組字首,稱為魔術位元組,這些位元組是專門製作幷包含在檔案中用於識別檔案型別的。

例如,您可以在 Java 檔案中找到 CA FE BA BE(十六進位制格式),在 pdf 檔案中找到 %PDF(ASCII 格式)。Tika 使用此資訊來識別檔案的媒體型別。

字元編碼

包含純文字的檔案使用不同型別的字元編碼進行編碼。這裡的主要挑戰是識別檔案中使用的字元編碼型別。Tika 遵循諸如Bom 標記位元組頻率之類的字元編碼技術來識別純文字內容使用的編碼系統。

XML 根字元

為了檢測 XML 文件,Tika 解析 XML 文件並提取諸如根元素、名稱空間和參考模式之類的資訊,從中可以找到檔案的真實媒體型別。

使用外觀類進行型別檢測

外觀類的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
廣告
© . All rights reserved.