我想使用 char by char 比较断言文件。最好的方法是什么?没有第 3 部分库。哪个文件阅读器最适合这个?
问问题
4018 次
3 回答
14
不确定对第 3 方库的反对意见是什么……无需重新发明轮子。
我发现开源和广泛使用的apache.commons.io方法FileUtils.contentEquals(file1, file2)
非常好 - 这是javadoc。
于 2012-05-25T08:32:27.447 回答
2
如果您碰巧正在使用 Google Guava 库,那么您可以使用:
Files.equal(file1, file2);
从文档:
Returns true if the files contains the same bytes.
于 2014-03-09T20:27:48.723 回答
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。
于 2015-12-21T16:40:03.723 回答