Рассмотрите возможность использования контрольной суммы.
Это от http://www.exampledepot.com/egs/java.util.zip/CalculateChecksum.html
byte[] bytes = "some data".getBytes();
// Compute Adler-32 checksum
Checksum checksumEngine = new Adler32();
checksumEngine.update(bytes, 0, bytes.length);
long checksum = checksumEngine.getValue();
// Compute CRC-32 checksum
checksumEngine = new CRC32();
checksumEngine.update(bytes, 0, bytes.length);
checksum = checksumEngine.getValue();
// The checksum engine can be reused again for a different byte array by calling reset()
checksumEngine.reset();
Редактировать :
Имейте в виду, что контрольные суммы не могут точно сказать вамесли два файла разные, но они очень полезны.
Если два файла одинаковы, у них будет одинаковая контрольная сумма.
Таким образом, если контрольные суммы различаются, вы абсолютно точно знаете, что файлы различаются.
Но два разных файла также могут иногда иметь одинаковую контрольную сумму.
Таким образом, способ использовать это, чтобы сначала вычислить контрольные суммы - если они различаются, файлы разные.Если они одинаковы, вам придется делать побайтовое сравнение.Это медленнее, конечно, но это случается не часто.
Обратите внимание также все это относится и к хеш-кодам.