关于循环指定文件夹下面图片MD5值
来源:互联网 发布:网络侦探黄金大 编辑:程序博客网 时间:2024/05/21 10:34
public static void main(String[] args){
getMD5("C:\\Users\\Administrator\\Desktop\\work");
}
public static void getMD5(String names){
// 获得指定文件对象
File file = new File(names);
String urlName = "";
// 获得该文件夹内的所有文件
File[] array = file.listFiles();
for(int i=0;i<array.length;i++)
{
if(array[i].isFile())//如果是文件
{
//for (int j = 0; j < deep; j++)//输出前置空格
// String pName = array[i].getName();
//System.out.println("=="+pName);
//urlName = "C:\\Users\\Administrator\\Desktop\\work\\"+pName;
String name = array[i].getPath();
md(name);
}
}
}
private static void md(String urlName) {
String name = "";
try {
URL url = new URL(urlName);
System.out.println("URLName"+urlName);
InputStream inputStream = new BufferedInputStream(url.openStream());
byte[] bytes = new byte[1024];
int len = 0;
MessageDigest messagedigest = MessageDigest.getInstance("MD5");
while ((len = inputStream.read(bytes)) > 0) {
messagedigest.update(bytes, 0, len);
}
name = MD5Util.bufferToHex(messagedigest.digest());
System.out.print("\""+name+"\",");
inputStream.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
} catch (NoSuchAlgorithmException e) {
}
}
public class MD5Util {
/**
* 默认的密码字符串组合,用来将字节转换成 16 进制表示的字符
*/
protected static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6','7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
protected static MessageDigest messagedigest = null;
static {
try {
messagedigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public static String getFileMD5String(File file) throws IOException {
InputStream fis;
fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0) {
messagedigest.update(buffer, 0, numRead);
}
fis.close();
return bufferToHex(messagedigest.digest());
}
public static String getStringMD5(String str){
byte[] buffer=str.getBytes();
messagedigest.update(buffer);
return bufferToHex(messagedigest.digest());
}
public static String bufferToHex(byte bytes[]) {
return bufferToHex(bytes, 0, bytes.length);
}
private static String bufferToHex(byte bytes[], int m, int n) {
StringBuffer stringbuffer = new StringBuffer(2 * n);
int k = m + n;
for (int l = m; l < k; l++) {
appendHexPair(bytes[l], stringbuffer);
}
return stringbuffer.toString();
}
private static void appendHexPair(byte bt, StringBuffer stringbuffer) {
char c0 = hexDigits[(bt & 0xf0) >> 4];// 取字节中高 4 位的数字转换
// 为逻辑右移,将符号位一起右移,此处未发现两种符号有何不同
char c1 = hexDigits[bt & 0xf];// 取字节中低 4 位的数字转换
stringbuffer.append(c0);
stringbuffer.append(c1);
}
}
- 关于循环指定文件夹下面图片MD5值
- Android展示指定文件夹下面的所有的图片
- 关于drawable文件夹下面的图片不能动态在R文件下面生成资源ID
- 关于读取指定文件夹下批图片的问题
- 递归显示指定文件夹下面的文件
- 将文件夹下面的文件移到指定文件夹
- 递归删除指定文件夹下面的文件和文件夹
- 删除指定文件夹以及文件夹下面的所有文件
- 把每次循环生成的图片放入指定的文件夹中
- 怎样在sdcard文件夹下面放置图片?
- 指定文件夹下面的所有内容copy到目标文件夹下面
- 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
- 获得指定文件夹下的子文件目录及子文件MD5值
- notepad++ 查找某个文件夹下面指定文件的字符串
- 递归删除某文件夹下面的指定文件 mac
- C语言读取指定文件夹下面的所有文件
- [备忘] [坑坑坑!]windows tar 压缩文件夹到指定目录下面
- Python 批量删除文件夹下面指定类型的所有文件
- IntelliJ IDEA Debug调试案例二
- hbase笔试题
- zk negotiated timeout和响应timeout讨论
- 判断是否为手机号
- 【Solidity】6. 合约
- 关于循环指定文件夹下面图片MD5值
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 通过POI统一读取Excel文件(兼容97-2003和2007+两种格式)
- ios 工具集
- 汉字与16进制转化
- Sublime Text 3 3143 注册码
- tf.Variable()和tf.get_variable()的使用方法和相同点
- S3 bucket versioning 总结