我想用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的斷言(假)
- 6. Java斷言問題
- 7. Java .properties文件等價於Ruby?
- 8. C#中的文化等同於Java中的語言環境嗎?
- 9. 從rspec中斷言斷言與斷言
- 10. NSString isEqualToString:不等同於韓文語言。
- 11. 使用斷言在Java中
- 12. 的Java:上斷言行爲
- 13. 忽略Fluent斷言中的DataMember。應該等同於
- 14. XUnit用於檢查對象相等的斷言
- 15. 斷言css定位器等於它的預期值
- 16. 斷言`mock_calls`等於預期的通話清單
- 17. 如何斷言一個類型等於給定值
- 18. 關於斷言啓用
- 19. Java:斷言文件序列化已完成?
- 20. 平等斷言失敗的macroexpand
- 21. PHPUnit - 斷言兩個XML不相等
- 22. 爲什麼斷言不相等?
- 23. 斷言型家庭FORALL平等
- 24. 如何使斷言等待IdlingResource聲明
- 25. 斷言與JUnit斷言
- 26. 斷言在MapBase.h文件中失敗
- 27. jquery datepicker語言文件中斷對象
- 28. 停止截斷Java文件?
- 29. 是否有某種'斷言'覆蓋工具(用於Java)?
- 30. 正在使用適用於驗證JPA實現的Java斷言
有多大的文件?如果它們足夠小,那麼只需將它們加載到內存中,並將'byte []'與適當的斷言工具進行比較可能是最簡單的方法。如果它們可以更大,那當然是行不通的。 –
從0到10000字節 – Ilya
這應該很容易適應內存。注意:兩個文件可以有不同的字節,但具有完全相同的字符。 ;) –