Java,断言文件等于

时间:2012-05-25 08:28:05

标签: java performance equals

我想通过char比较使用char来断言文件。 最好的方法是什么?没有第三方库。哪个文件阅读器最适合这个?

3 个答案:

答案 0 :(得分:12)

不确定对第三方图书馆的反对意见是......不需要重新发明轮子。

我发现开源且广泛使用的apache.commons.io方法FileUtils.contentEquals(file1, file2)非常好 - 这是javadoc

答案 1 :(得分:2)

如果您正好使用Google Guava库,那么您可以使用:

Files.equal(file1, file2);

来自docs

Returns true if the files contains the same bytes.

答案 2 :(得分:1)

对于小文件(最多几MB),流式I / O几乎没有什么好处,所以你可以保持简单:

Arrays.equals(Files.readAllBytes(firstFile), Files.readAllBytes(secondFile));

如果要使用不同的编码,还可以将字节解码为字符:

boolean equal = new String(Files.readAllBytes(firstFile), firstEncoding).equals(
                new String(Files.readAllBytes(secondFile), secondEncoding));

这只需要Java 7。