2017-02-10 88 views
-2

如何比較Java中的任何類型的兩個文件?在Java中比較文件?

我能夠比較兩個文本文件,但我需要比較任何類型的文件(如XLS,DOC,JPP ...等)

我只是需要一個布爾結果(對任何類型告訴文件是否相同。

+4

您可以這樣做。前進。 –

+0

你如何比較文本文件?你可以簡單地比較每個文件類型的字節,而不是那麼難... – luk2302

+0

如何使用'md5sum'?這對你有用嗎? – Sangharsh

回答

1

您可以先比較文件長度,然後您可以逐字節比較文件內容,並在找到差異後立即返回false。關於MD5 comparaison

public static boolean sameContent (File f1, File f2) throws IOException { 
    if(f1.length()!=f2.length())return false; 
    FileInputStream fis1 = new FileInputStream(f1); 
    FileInputStream fis2 = new FileInputStream(f2); 
    try { 
     int byte1; 
     while((byte1 = fis1.read())!=-1) { 
      int byte2 = fis2.read(); 
      if(byte1!=byte2)return false; 
     } 
    } finally { 
     fis1.close(); 
     fis2.close(); 
    } 
    return true; 
} 

一注(評論中的建議):

  • 比較文件的MD5是不可靠的,因爲2個不同的文件的MD5可以是相同的(如果你運氣不好)。
  • 計算md5需要讀取整個文件(+哈希算法),因此效率較低
+0

完美的工作。謝謝.. – Mahadevan