TIKA - Определение типа документа
Стандарты MIME
Стандарты многоцелевых расширений электронной почты Интернета (MIME) являются наилучшими доступными стандартами для определения типов документов. Знание этих стандартов помогает браузеру во время внутреннего взаимодействия.
Каждый раз, когда браузер сталкивается с медиафайлом, он выбирает совместимое программное обеспечение, доступное с ним, для отображения его содержимого. В случае, если у него нет подходящего приложения для запуска определенного медиафайла, он рекомендует пользователю получить для него подходящее программное обеспечение плагина.
Определение типа в Tika
Tika поддерживает все типы документов Интернет-СМИ, представленные в MIME. Всякий раз, когда файл проходит через Tika, он определяет файл и его тип документа. Для обнаружения типов мультимедиа Tika использует следующие механизмы.
Расширения файлов
Проверка расширений файлов - это самый простой и наиболее широко используемый метод определения формата файла. Многие приложения и операционные системы поддерживают эти расширения. Ниже показаны расширения нескольких известных типов файлов.
Имя файла | Продление |
---|---|
образ | .jpg |
аудио | .mp3 |
файл архива java | .jar |
файл класса java | .класс |
Подсказки по типу содержимого
Каждый раз, когда вы извлекаете файл из базы данных или прикрепляете его к другому документу, вы можете потерять имя или расширение файла. В таких случаях метаданные, поставляемые с файлом, используются для определения расширения файла.
Волшебный байт
Наблюдая за необработанными байтами файла, вы можете найти несколько уникальных шаблонов символов для каждого файла. Некоторые файлы имеют специальные байтовые префиксы, называемыеmagic bytes которые специально созданы и включены в файл с целью определения типа файла
Например, вы можете найти CA FE BA BE (шестнадцатеричный формат) в файле java и% PDF (формат ASCII) в файле PDF. Tika использует эту информацию для определения типа носителя файла.
Кодировки символов
Файлы с простым текстом кодируются с использованием различных типов кодировки символов. Основная проблема здесь - определить тип кодировки символов, используемый в файлах. Тика следует методам кодирования символов, таким какBom markers и Byte Frequencies для определения системы кодирования, используемой для текстового содержимого.
Корневые символы 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