怎么判断两文件里面内容是否完全一样??一定要分别读出他们的数据再比较??? 怎么判断两文件里面内容是否完全一样??一定要分别读出他们的数据再比较??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (MD5(file1)==MD5(file2)){//99.999999%的可以判定两文件相同} MD5是JAVA中的类吗??JAVA中能调用吗 运用SVN可以直接比较,不用这么麻烦 dreamover(梦醒了) :你知道不知道MD5一次要多少时间?会比直接比省时间吗? Windows 操作系统里每个文件都有一个 CRC 校验码,如果能把这个校验码取出来比较应该是可以的。但我不知道怎么取,而且也不知道其它的操作系统有没有类似的东西。 先比大小,然后比lastModify,如果都一样的话,只能比内容了。 to hbwhwang(catmiw的ID已经停用,现在用这个)你说的对,md5其实也是要把字节都读出来,还是直接比字节吧 建议用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"); } } } java文件中,去空格,在线等 跪求视频流在线播放问题的解答,紧急紧急。。。问题有挑战性哦!!! SQL Server 2000 JDBC 网络连接速度问题? 好像很慢,是不是配置错误 static int x1 = prt("x1");是什么意思? 毕业生:请各位给点意见 发个帖挣点分 想学JAVA!能介绍几本JAVA的好书吗? scjp题,帮忙解释一下为什么? 怎样调用数学函数. jtest4.1的注册机 如何实现日期的格式化输出,急用。。。 JBuilder中如何使用 Eclipse中写的的程序啊?
//99.999999%的可以判定两文件相同
}
JAVA中能调用吗
你知道不知道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");
}
}
}