欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java 大文件 md5_使用Java为大文件生成MD5非常慢

发布时间:2025/3/21 java 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 大文件 md5_使用Java为大文件生成MD5非常慢 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我用nio重写你的代码,代码有点像下面:

private static String generateMD5(FileInputStream inputStream){

if(inputStream==null){

return null;

}

MessageDigest md;

try {

md = MessageDigest.getInstance("MD5");

FileChannel channel = inputStream.getChannel();

ByteBuffer buff = ByteBuffer.allocate(2048);

while(channel.read(buff) != -1)

{

buff.flip();

md.update(buff);

buff.clear();

}

byte[] hashValue = md.digest();

return new String(hashValue);

}

catch (NoSuchAlgorithmException e)

{

return null;

}

catch (IOException e)

{

return null;

}

finally

{

try {

if(inputStream!=null)inputStream.close();

} catch (IOException e) {

}

}

}在我的机器上,为大文件生成md5代码大约需要30秒,当然我也会测试你的代码,结果表明nio不会提高程序的性能。

然后,我试图分别得到io和md5的时间,统计数据表明慢文件io是瓶颈,因为大约有5/6的时间用于io。

通过使用@Sticky提到的Fast MD5库,生成md5代码只需15秒,这一改进非常显着。

总结

以上是生活随笔为你收集整理的java 大文件 md5_使用Java为大文件生成MD5非常慢的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。