美文网首页
Java大文件Md5的检测,避免OOM

Java大文件Md5的检测,避免OOM

作者: 一洼世界 | 来源:发表于2017-08-07 14:47 被阅读51次

    开发中遇到对视频文件的md5的检测判断,经常会发生OOM。
    解决办法如下:

    public class MD5Util {
     
        public static String getMd5ByFile(File file) {
            InputStream fis;
            byte[] buffer = new byte[2048];
            int numRead = 0;
            MessageDigest md5;
    
            try {
                fis = new FileInputStream(file);
                md5 = MessageDigest.getInstance("MD5");
                while ((numRead = fis.read(buffer)) > 0) {
                    md5.update(buffer, 0, numRead);
                }
                fis.close();
                return md5ToString(md5.digest());
            } catch (Exception e) {
                System.out.println("error");
                return null;
            }
        }
    
        public static String md5ToString(byte[] md5Bytes) {
            StringBuffer hexValue = new StringBuffer();
            for (int i = 0; i < md5Bytes.length; i++) {
                int val = ((int) md5Bytes[i]) & 0xff;
                if (val < 16) {
                    hexValue.append("0");
                }
                hexValue.append(Integer.toHexString(val));
            }
            return hexValue.toString();
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Java大文件Md5的检测,避免OOM

          本文链接:https://www.haomeiwen.com/subject/xccalxtx.html