java计算过G文件md5 值计算
package io.bigdata; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.security.Security;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; import org.apache.commons.codec.digest.DigestUtils; public class Md5CaculateUtil { private Md5CaculateUtil(){ } private static char[] hexChar = {
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f'
}; public static String getHash(String fileName,String hashType) throws IOException, NoSuchAlgorithmException{ File f = new File(fileName);
System.out.println(" -------------------------------------------------------------------------------");
System.out.println("|当前文件名称:"+f.getName());
System.out.println("|当前文件大小:"+(f.length()/1024/1024)+"MB");
System.out.println("|当前文件路径[绝对]:"+f.getAbsolutePath());
System.out.println("|当前文件路径[---]:"+f.getCanonicalPath());
System.out.println(" -------------------------------------------------------------------------------"); InputStream ins = new FileInputStream(f); byte[] buffer = new byte[8192];
MessageDigest md5 = MessageDigest.getInstance(hashType); int len;
while((len = ins.read(buffer)) != -1){
md5.update(buffer, 0, len);
} ins.close();
// 也可以用apache自带的计算MD5方法
return DigestUtils.md5Hex(md5.digest());
// 自己写的转计算MD5方法
// return toHexString(md5.digest());
} public static String getHash2(String fileName){
File f = new File(fileName);
return String.valueOf(f.lastModified());
} protected static String toHexString(byte[] b){
StringBuilder sb = new StringBuilder(b.length*2);
for(int i=0;i<b.length;i++){
sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
sb.append(hexChar[b[i] & 0x0f]);
}
return sb.toString();
} /*
* 获取MessageDigest支持几种加密算法
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
private static String[] getCryptolmpls(String serviceType){ Set result = new HashSet();
// all providers
Provider[] providers = Security.getProviders();
for(int i=0;i<providers.length;i++){
// get services provided by each provider
Set keys = providers[i].keySet();
for(Iterator it = keys.iterator();it.hasNext();){
String key = it.next().toString();
key = key.split(" ")[0]; if(key.startsWith(serviceType+".")){
result.add(key.substring(serviceType.length()+1));
}else if(key.startsWith("Alg.Alias."+serviceType+".")){
result.add(key.substring(serviceType.length()+11));
}
}
}
return (String[]) result.toArray(new String[result.size()]);
} public static void main(String[] args) throws Exception, Exception {
// 调用方法
// String[] names = getCryptolmpls("MessageDigest");
// for(String name:names){
// System.out.println(name);
// }
long start = System.currentTimeMillis();
System.out.println("开始计算文件MD5值,请稍后...");
String fileName = "E:\\Office_2010_Toolkit_2.2.3_XiaZaiBa.zip";
//// String fileName = "E:\\SoTowerStudio-3.1.0.exe";
String hashType = "MD5";
String hash = getHash(fileName,hashType);
System.out.println("MD5:"+hash);
long end = System.currentTimeMillis();
System.out.println("一共耗时:"+(end-start)+"毫秒");
}
}
开始计算文件MD5值,请稍后...
-------------------------------------------------------------------------------
|当前文件名称:Office_2010_Toolkit_2.2.3_XiaZaiBa.zip
|当前文件大小:2437MB
|当前文件路径[绝对]:E:\Office_2010_Toolkit_2.2.3_XiaZaiBa.zip
|当前文件路径[---]:E:\Office_2010_Toolkit_2.2.3_XiaZaiBa.zip
-------------------------------------------------------------------------------
MD5:b1d269391c87942e5bb32b575baa0d79
一共耗时:18794毫秒
参考文章:http://sziitjiang.iteye.com/blog/1702961
java计算过G文件md5 值计算的更多相关文章
- 利用python计算windows全盘文件md5值的脚本
import hashlib import os import time import configparser import uuid def test_file_md5(file_path): t ...
- 获取文件MD5值(JS、JAVA)
文章HTML代码翻译于地址:https://www.cnblogs.com/linyihai/p/7040786.html 文件MD5有啥用? 文 ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- 基于js-spark-md5前端js类库,快速获取文件Md5值
js-spark-md5是歪果仁开发的东西,有点多,但是我们只要一个js文件即可,具体类包我存在自己的oschina上,下载地址:https://git.oschina.net/jianqingwan ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- QT 获取文件MD5值
/* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptogra ...
- C# 获取文件MD5值的方法
可用于对比文件是否相同 /// <summary> /// 获取文件MD5值 /// </summary> /// <param name="fileName& ...
- C#统计目录中文件MD5值
1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...
- Java计算文件MD5值(支持大文件)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.securit ...
随机推荐
- setAnimationTransition:forView:cache: 运行动画时背景色问题
首先我描写叙述一下问题:当我从一个view到另外一个view的时候? 解答:这个问题的解决还须要看setAnimationTransition:forView:cache: 官方Api,官方是这样说的 ...
- bash的for循环从命令读取值
bash的for循环可以很方便地从命令读取值,还可以指定分割值 下面的程序可以打印文件的内容,前面加上行号 #!/bin/bash # 打印每一行的内容,前面加行号 filename="/h ...
- discuz常用变量
帖子URL: {url}帖子标题: {title}附件图片: {pic}帖子内容: {summary}楼主: {author}楼主UID: {authorid}楼主头像: {avatar}楼主头像(中 ...
- 修改范围PHP_INI_SYSTEM与PHP_INI_ALL的区别
PHP_INI_USER 可在用户脚本(例如 ini_set() )或 Windows 注册表(自 PHP 5.3 起)以及 .user.ini 中设定 PHP_INI_PERDIR 可在 php.i ...
- 视频-某hadoop高级应用-搜索提示
看了北风的免费视频,只有一个案例,苦逼买不起几百上千的视频教程 先搭建简单的web项目,基于struts,使用到了bootstrap. 界面: web.xml <filter> <f ...
- cocos2d-x混合BlendFunc的使用
1.什么是混合模式 “混合”是指两种颜色的叠加方式.在新图片将要渲染画到屏幕上的时候,将用在新图片中的红.绿.蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合. 说的具体一点,就是把某一像素位置上 ...
- js工作中编程习惯
在前端编程中总结的习惯不管js还是css 还是后端开发这几点都是必须要做到的做好这几点不管去什么公司都是受到别人的尊重 善用变量,尤其是对DOM结构中的ID以及CLASS 多写注释,自己不熟,前面写后 ...
- [Oracle AR]Territory Flexfield
You can use the Territory Flexfield for recording and customized reporting on your territory informa ...
- [改善Java代码]适时选择getDeclaredxxx和getxxx
Java的Class类提供了很多的getDeclaredxxx方法和getxxx方法,例如getDeclaredmethod和getMethod成对出现,getDeclaredConstructors ...
- backboneJs 导图