Учебники

TIKA — определение типа документа

Стандарты многоцелевого интернет-почтового расширения (MIME) являются лучшими доступными стандартами для идентификации типов документов. Знание этих стандартов помогает браузеру во внутренних взаимодействиях.

Всякий раз, когда браузер обнаруживает мультимедийный файл, он выбирает совместимое программное обеспечение, доступное с ним, для отображения его содержимого. В случае, если у него нет подходящего приложения для запуска определенного медиа-файла, он рекомендует пользователю получить подходящее программное обеспечение для плагина.

Тип обнаружения в Тика

Тика поддерживает все типы документов в Интернете, представленные в MIME. Всякий раз, когда файл проходит через Tika, он обнаруживает файл и его тип документа. Для определения типов носителей Tika использует следующие механизмы.

Расширения файлов

Проверка расширений файлов — это самый простой и наиболее распространенный метод определения формата файла. Многие приложения и операционные системы обеспечивают поддержку этих расширений. Ниже показано расширение нескольких известных типов файлов.

Имя файла Удлинитель
образ .jpg
аудио .mp3
файл архива Java .jar
файл классов Java .учебный класс

Тип контента Подсказки

Когда вы извлекаете файл из базы данных или присоединяете его к другому документу, вы можете потерять имя или расширение файла. В таких случаях метаданные, поставляемые с файлом, используются для определения расширения файла.

Волшебный байт

Наблюдая за необработанными байтами файла, вы можете найти несколько уникальных шаблонов символов для каждого файла. Некоторые файлы имеют специальные байтовые префиксы, называемые магическими байтами , которые специально созданы и включены в файл с целью определения типа файла.

Например, вы можете найти CA FE BA BE (шестнадцатеричный формат) в java-файле и% PDF (формат ASCII) в pdf-файле. Тика использует эту информацию для определения типа носителя файла.

Кодировки символов

Файлы с простым текстом кодируются с использованием различных типов кодировки символов. Основная задача здесь — определить тип кодировки символов, используемый в файлах. Тика использует методы кодирования символов, такие как 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 и запустите его из командной строки, используя следующие команды: