怎么判断两文件里面内容是否完全一样??一定要分别读出他们的数据再比较???

解决方案 »

  1.   

    if (MD5(file1)==MD5(file2)){
    //99.999999%的可以判定两文件相同
    }
      

  2.   

    MD5是JAVA中的类吗??
    JAVA中能调用吗
      

  3.   

    运用SVN可以直接比较,不用这么麻烦
      

  4.   

    dreamover(梦醒了) :
    你知道不知道MD5一次要多少时间?
    会比直接比省时间吗?
      

  5.   

    Windows 操作系统里每个文件都有一个 CRC 校验码,如果能把这个校验码取出来比较应该是可以的。但我不知道怎么取,而且也不知道其它的操作系统有没有类似的东西。
      

  6.   

    先比大小,然后比lastModify,如果都一样的话,只能比内容了。
      

  7.   

    to hbwhwang(catmiw的ID已经停用,现在用这个)你说的对,md5其实也是要把字节都读出来,还是直接比字节吧
      

  8.   

    建议用md5比较
    贴一个md5的程序:import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.io.*;public class EncryptUtil
    {
     /**
      * 
      * @param filePath The full path of the file
      * @return 
      * @throws Exception
      */
     public static String encrypt(String filePath) throws Exception
     {
      String inStr = getString(filePath);
      MessageDigest md = null;
      String out = null;  try
      {
       md = MessageDigest.getInstance("MD5");
       byte[] digest = md.digest(inStr.getBytes());
       out = byte2hex(digest);
      }
      catch (NoSuchAlgorithmException e)
      {
       e.printStackTrace();
       throw e;
      }  return out;
     } private static String byte2hex(byte[] b)
     {
      String hs = "";
      String stmp = "";
      for (int n = 0; n < b.length; n++)
      {
       stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
       if (stmp.length() == 1)
       {
        hs = hs + "0" + stmp;
       }
       else
       {
        hs = hs + stmp;
       }
      }
      return hs.toUpperCase();
     } private static String getString(String filePath) throws Exception
     {
      StringBuffer sbuf = new StringBuffer();
      try
      {
       FileReader fr = new FileReader(filePath);
       BufferedReader br = new BufferedReader(fr);   String Line = br.readLine();   while (Line != null)
       {
        sbuf.append(Line);
        sbuf.append("\r\n");    
        Line = br.readLine();
       }
       br.close();
       fr.close();
      }
      catch (Exception e)
      {
       e.printStackTrace();
       throw e;
      }
      //System.out.println(sbuf.toString());
      
      return sbuf.toString().trim();
     } public static void main(String[] args) throws Exception
     {
      if(args.length > 0)
      {
       String result = null;
       try
       {
        result = encrypt(args[0]);
       }
       catch (Exception e)
       {
        e.printStackTrace();
       }
       System.out.println(args[0] + " : " + result);
       //System.out.println(args[1] + " : " + encrypt(args[1])); 
      }
      else
      {
       System.out.println("the file does not exist");
      }
     }
     
    }