I/O Principiante

Compara dos archivos de forma eficiente sin cargarlos en memoria.

✕ Java 8
// Compare two files byte by byte
byte[] f1 = Files.readAllBytes(path1);
byte[] f2 = Files.readAllBytes(path2);
boolean equal = Arrays.equals(f1, f2);
// loads both files entirely into memory
✓ Java 12+
long pos = Files.mismatch(path1, path2);
// -1 if identical
// otherwise: position of first difference
¿Ves un problema con este código? Cuéntanos.

Eficiente en memoria

No carga archivos completos en arrays de bytes.

🎯

Identifica la diferencia

Devuelve la posición exacta del byte de la primera discrepancia.

📏

Una sola llamada

Sin lógica manual de comparación de arrays de bytes.

Enfoque Antiguo
Comparación manual de bytes
Enfoque Moderno
Files.mismatch()
Desde JDK
12
Dificultad
Principiante
Files.mismatch()
Disponible

Ampliamente disponible desde JDK 12 (marzo de 2019)

Files.mismatch() devuelve la posición del primer byte que difiere, o -1 si los archivos son idénticos. Lee de forma perezosa y cortocircuita en la primera diferencia.

Compartir 𝕏 🦋 in