MD5比较两个文件是否相同java
时间: 2023-08-05 07:09:49 浏览: 91
可以使用Java的MessageDigest类来比较两个文件的MD5值是否相同。以下是一个示例代码:
```java
import java.io.FileInputStream;
import java.security.MessageDigest;
public class FileCompare {
public static void main(String[] args) throws Exception {
String file1 = "path/to/file1";
String file2 = "path/to/file2";
// 计算文件1的MD5值
String md5File1 = getFileMD5(file1);
// 计算文件2的MD5值
String md5File2 = getFileMD5(file2);
// 比较两个MD5值是否相同
if (md5File1.equals(md5File2)) {
System.out.println("两个文件相同");
} else {
System.out.println("两个文件不同");
}
}
public static String getFileMD5(String filePath) throws Exception {
FileInputStream fis = new FileInputStream(filePath);
byte[] buffer = new byte[1024];
MessageDigest md5 = MessageDigest.getInstance("MD5");
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0) {
md5.update(buffer, 0, numRead);
}
fis.close();
byte[] md5Bytes = md5.digest();
StringBuilder sb = new StringBuilder();
for (byte md5Byte : md5Bytes) {
sb.append(Integer.toHexString((md5Byte & 0xff) | 0x100).substring(1, 3));
}
return sb.toString();
}
}
```
在上面的示例代码中,getFileMD5方法计算指定文件的MD5值,getFileMD5方法将文件读入一个缓冲区,然后使用MessageDigest类的update方法更新MD5摘要,并最终使用digest方法获取MD5值。getFileMD5方法返回一个字符串,其中包含十六进制格式的MD5值。在主程序中,我们比较两个文件的MD5值是否相同,来判断两个文件是否相同。
阅读全文