我想用char by char比较来断言文件。 要做到这一点的最佳方法是什么?没有第三部分库。哪个文件阅读器最适合这个性能?Java,断言文件等于
2
A
回答
12
不知道对第三方库有什么异议......不需要重新发明轮子。
我发现了开源和广泛使用apache.commons.io方法FileUtils.contentEquals(file1, file2)
是相当不错的 - 这里是javadoc。
2
1
对于小文件(高达数MB),流式I/O会产生很少的好处,所以你可以保持简单:
Arrays.equals(Files.readAllBytes(firstFile), Files.readAllBytes(secondFile));
如果你想使用不同的编码S,你也可以将字节解码成字符:
boolean equal = new String(Files.readAllBytes(firstFile), firstEncoding).equals(
new String(Files.readAllBytes(secondFile), secondEncoding));
这只需要Java 7
相关问题
- 1. 断言不返回严格等于
- 2. Java断言
- 3. 断言在Java
- 4. 等效于Java ScheduledExecutorService的C语言库?
- 5. Java,断言和JIT
- 6. Java的断言(假)
- 7. Java断言问题
- 8. Java断言打印
- 9. 断言语句比较两个文件是否相等
- 10. JavaScript文件对象等同于Java的
- 11. Java .properties文件等价于Ruby?
- 12. C#中的文化等同于Java中的语言环境吗?
- 13. 基于事件触发的SV断言
- 14. 从rspec中断言断言与断言
- 15. NSString isEqualToString:不等同于韩文语言。
- 16. SAML断言使用java
- 17. Java断言双是NaN
- 18. 的Java:上断言行为
- 19. Java的断言 - $ assertionsDisabled VS $ assertionsEnabled
- 20. 使用断言在Java中
- 21. XUnit用于检查对象相等的断言
- 22. 断言`mock_calls`等于预期的通话清单
- 23. 断言css定位器等于它的预期值
- 24. 如何断言一个类型等于给定值
- 25. 断言浮点值等于有效数字公差
- 26. Mockito和断言 - 两个相同的BigDecimals ...不等于
- 27. 忽略Fluent断言中的DataMember。应该等同于
- 28. 关于断言启用
- 29. Java:断言文件序列化已完成?
- 30. 断言在junit中float的不等式
有多大的文件?如果它们足够小,那么只需将它们加载到内存中,并将'byte []'与适当的断言工具进行比较可能是最简单的方法。如果它们可以更大,那当然是行不通的。 –
从0到10000字节 – Ilya
这应该很容易适应内存。注意:两个文件可以有不同的字节,但具有完全相同的字符。 ;) –