2017-02-10 10 views
-2

Javaで2つのファイルの種類を比較するにはどうすればよいですか?Javaでファイルを比較しますか?

私は2つのテキストファイルを比較することができるんだけど、私は、ファイルの任意の型を比較す​​る必要があります(など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; 
} 

ワン注:2つの異なるファイルのMD5は(あなたが不運であれば)同じにすることができるので

  • ファイルのMD5を比較するには、信頼性がありません。
  • MD5を計算あなたはそれを行うことができ、ファイル全体(+ハッシュアルゴリズム)を読み取る必要とするので、あまり効率的で
+0

完璧に働いています。ありがとう.. – Mahadevan

関連する問題