实现Java文件MD5值对比
步骤表格
步骤 | 描述 |
---|---|
1 | 读取文件1的MD5值 |
2 | 读取文件2的MD5值 |
3 | 比较两个MD5值是否相同 |
代码示例
import java.io.FileInputStream;
import java.security.MessageDigest;
public class MD5Util {
public static String getMD5(String filePath) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(filePath);
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
}
fis.close();
byte[] mdBytes = md.digest();
StringBuilder sb = new StringBuilder();
for (byte mdByte : mdBytes) {
sb.append(Integer.toString((mdByte & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String file1 = "path/to/file1";
String file2 = "path/to/file2";
String md5File1 = getMD5(file1);
System.out.println("MD5 of file1: " + md5File1);
String md5File2 = getMD5(file2);
System.out.println("MD5 of file2: " + md5File2);
if (md5File1.equals(md5File2)) {
System.out.println("MD5 values are equal.");
} else {
System.out.println("MD5 values are not equal.");
}
}
}
流程解析
-
读取文件1的MD5值:
- 使用
getMD5
方法读取文件1的MD5值,传入文件1的路径作为参数。
- 使用
-
读取文件2的MD5值:
- 使用
getMD5
方法读取文件2的MD5值,传入文件2的路径作为参数。
- 使用
-
比较两个MD5值是否相同:
- 使用字符串的
equals
方法比较两个MD5值是否相同。
- 使用字符串的
图表展示
pie
title 文件MD5值对比结果比例
"MD5值相同" : 70
"MD5值不同" : 30
通过以上步骤和代码示例,你可以实现Java文件MD5值对比的功能。希望对你有所帮助!