Saltar al contenido

Java: ¿Cómo comprobar que 2 archivos binarios son iguales?

Queremos proponerte la mejor información que encontramos en línea. Nosotros deseamos que te sirva de ayuda y si deseas comentarnos algo que nos pueda ayudar a mejorar hazlo libremente.

Solución:

¿Son las bibliotecas de terceros un juego justo? guayaba tiene Files.equal(File, File). No hay una razón real para molestarse con el hashing si no es necesario; solo puede ser menos eficiente.

Siempre hay que leer byte a byte de cada archivo y compararlos sobre la marcha. Md5 y Sha1, etc. todavía tienen que leer todos los bytes, por lo que calcular el hash es un trabajo adicional que no tiene que hacer.

if(file1.length() != file2.length())
        return false;
 

 try(   InputStream in1 =new BufferedInputStream(new FileInputStream(file1));
    InputStream in2 =new BufferedInputStream(new FileInputStream(file2));
 )

      int value1,value2;
      do
           //since we're buffered read() isn't expensive
           value1 = in1.read();
           value2 = in2.read();
           if(value1 !=value2)
           return false;
           
      while(value1 >=0);

 //since we already checked that the file sizes are equal 
 //if we're here we reached the end of both files without a mismatch
 return true;

Con aserciónBinaryEquals.

public static void assertBinaryEquals(java.io.File expected,
java.io.File actual)

http://junit-addons.sourceforge.net/junitx/framework/FileAssert.html

Puedes añadir valor a nuestro contenido informacional dando tu experiencia en las referencias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *