code: public static String fastMD5(File file)
      {        
          try (FileInputStream in = new FileInputStream(file))
          {            
              return calculateMD5Hash(in.getChannel());
          }
          catch (IOException e)
          {
              return null;
          }        
      }
docs: Super-fast MD5 calculation from entire file.  Uses FileChannel and
  direct ByteBuffer (internal JVM memory).
  @param file File that from which to compute the MD5
  @return String MD5 value.