代码在DigestUtils.md5Hex(fis)这一步卡住不往下走是什么元元
时间: 2024-03-01 07:56:12 浏览: 211
js_hex_md5.rar_hex md5_hex_m_hex_md5_hex_md5.js_js hex_md5
当调用DigestUtils.md5Hex(fis)时,它会读取文件流中的所有字节,并计算它们的MD5哈希值。如果文件流非常大,而且内存不足以一次性读取所有字节,那么就会出现程序卡住的情况。
为了避免这种情况,可以使用缓冲区来读取文件流中的字节,而不是一次性读取所有字节。可以尝试使用如下代码:
```java
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import org.apache.commons.codec.digest.DigestUtils;
public String getMD5(String filePath) throws Exception {
FileInputStream fis = new FileInputStream(filePath);
BufferedInputStream bis = new BufferedInputStream(fis);
String md5Hex = DigestUtils.md5Hex(bis);
bis.close();
fis.close();
return md5Hex;
}
```
该代码使用了缓冲区,并且在计算MD5值后及时关闭文件流和缓冲区,以避免资源泄漏。
阅读全文