Er der en sikker og hurtig måde at tjekke om 2 filer er identiske? Det er 200 filer mod måske 200 andre jeg skal tjekke imod og der må helst ikke gå mere end et par minutter. Jeg er ikke interesseret i forskellen.
IO tid (for at læse fra disk) vil under alle omstændigheder være den store tidssluger det gør ikke den helt store forskel hvadfor en algoritme du bruger.
første trim i sammenligning bør være at sammenligne filstørrelse, hvis du er heldig er den forskellig og så slipper du for at læse de to filer. åben filerne som binary i en bufferedReader og shift evt 4 bytes sammen til en int før du sammenligner. måske man endda kan indlæse 4 byte direkt i en int (ikke stiv i Java io) men så skal du holde øje med slutningen hvor der måske kun er 2 eller 3 byte tilbage.
risikoen for MD5 kollision er nok til at leve med (1 ud af 2^128 eller ca. 1 ud af 10^38)
men der er ligesom ikke rigtig nogen pointe - hvis man alligevel skal læse begge filer så kan man lige så godt checke data - MD5 kan give mening hvis man har gemt MD5 for den ene fil så man ikke skal beregne dden - eller hvis man har brug for envejs egenskaberne (password i databaser)
sammenlign størrelse og hvis de er ens så læs data fra begge file i meget store klumper og afbryd ved første forskel
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.