Есть такое понятие как сравнение ожидаемого результата с актуальным, тоесть тем который current. Так вот слыхал, о такой технологии как побитовый анализ файлов.
Например есть задача распознать тот ли рисунок открылся или заугрзился не по имени или локации рисунка а по содержанию, тоесть грубо говоря "то ли нарисовано".
Слыхал что есть тулзы (может и библиотеки), которые распознают файлы побитово и анализируют равны ли структуры.
Интересует как это реалиовать на практике в автоматизации. Сейчас не идет речь о рисунках, так как етсть sikuli и тому подобные вещи, а о файлах в общих чертах. Спасибо!
/** * Compare binary files. Both files must be files (not directories) and exist. * * @param first - first file * @param second - second file * @return boolean - true if files are binery equal * @throws IOException - error in function */ public boolean isFileBinaryEqual( File first, File second ) throws IOException { // TODO: Test: Missing test boolean retval = false;
try { firstInput = new FileInputStream(first); secondInput = new FileInputStream(second); bufFirstInput = new BufferedInputStream(firstInput, BUFFER_SIZE); bufSecondInput = new BufferedInputStream(secondInput, BUFFER_SIZE);
Метод открывает для каждого файла поток. Одновременно читает из каждого по байту и сравнивает их. Так продолжается до тех пор пока байты не станут разными (вернет false) либо пока не будет достигнут одновременно конец обоих потоков (вернет true).