TIKA - Belge Tipi Tespiti

MIME Standartları

Çok Amaçlı İnternet Posta Uzantıları (MIME) standartları, belge türlerini belirlemek için mevcut en iyi standartlardır. Bu standartların bilgisi, dahili etkileşimler sırasında tarayıcıya yardımcı olur.

Tarayıcı bir medya dosyasıyla karşılaştığında, içeriğini görüntülemek için onunla birlikte kullanılabilen uyumlu bir yazılımı seçer. Belirli bir medya dosyasını çalıştırmak için uygun herhangi bir uygulamaya sahip olmaması durumunda, kullanıcıya onun için uygun eklenti yazılımını almasını önerir.

Tika'da Tip Algılama

Tika, MIME'de sağlanan tüm İnternet medya belge türlerini destekler. Bir dosya Tika'dan her geçtiğinde, dosyayı ve belge türünü algılar. Ortam türlerini tespit etmek için Tika dahili olarak aşağıdaki mekanizmaları kullanır.

Dosya uzantıları

Dosya uzantılarını kontrol etmek, bir dosyanın biçimini tespit etmek için en basit ve en yaygın kullanılan yöntemdir. Birçok uygulama ve işletim sistemi bu uzantılar için destek sağlar. Aşağıda, bilinen birkaç dosya türünün uzantısı gösterilmektedir.

Dosya adı Uzantı
görüntü .jpg
ses .mp3
java arşiv dosyası .jar
java sınıf dosyası .sınıf

İçerik Türü İpuçları

Veritabanından bir dosya aldığınızda veya başka bir belgeye eklediğinizde, dosyanın adını veya uzantısını kaybedebilirsiniz. Bu gibi durumlarda, dosya ile birlikte sağlanan meta veriler, dosya uzantısını tespit etmek için kullanılır.

Sihirli Bayt

Bir dosyanın ham baytlarını inceleyerek, her dosya için bazı benzersiz karakter desenleri bulabilirsiniz. Bazı dosyaların özel bayt önekleri vardır.magic bytes dosya türünü belirlemek amacıyla özel olarak yapılmış ve bir dosyaya eklenmiş

Örneğin, bir java dosyasında CA FE BA BE (onaltılık format) ve bir pdf dosyasında% PDF (ASCII formatı) bulabilirsiniz. Tika, bu bilgiyi bir dosyanın ortam türünü belirlemek için kullanır.

Karakter Kodlamaları

Düz metin içeren dosyalar, farklı karakter kodlaması türleri kullanılarak kodlanır. Buradaki temel zorluk, dosyalarda kullanılan karakter kodlama türünü belirlemektir. Tika, aşağıdaki gibi karakter kodlama tekniklerini takip eder:Bom markers ve Byte Frequencies düz metin içeriği tarafından kullanılan kodlama sistemini tanımlamak için.

XML Kök Karakterleri

XML belgelerini algılamak için Tika, xml belgelerini ayrıştırır ve dosyaların gerçek ortam türünün bulunabileceği kök öğeler, ad alanları ve başvurulan şemalar gibi bilgileri çıkarır.

Cephe Sınıfı kullanarak Tip Algılama

detect()Doküman türünü tespit etmek için cephe sınıfı yöntemi kullanılır. Bu yöntem, bir dosyayı girdi olarak kabul eder. Aşağıda gösterilen, Tika cephe sınıfı ile belge tipi tespiti için örnek bir programdır.

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);
   }
}

Yukarıdaki kodu TypeDetection.java olarak kaydedin ve aşağıdaki komutları kullanarak komut isteminden çalıştırın -

javac TypeDetection.java
java TypeDetection 

audio/mpeg