if (!file.isFile()) {
return null
}
MessageDigest digest = null
FileInputStream in = null
byte buffer[] = new byte[1024]
int len
try {
digest = MessageDigest.getInstance("MD5")
in = new FileInputStream(file)
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len)
}
in.close()
} catch (Exception e) {
e.printStackTrace()
return null
}
BigInteger bigInt = new BigInteger(1, digest.digest())
return bigInt.toString(16)
}
package my.bagimport java.io.File
import java.io.FileInputStream
import java.math.BigInteger
import java.security.MessageDigest
import java.util.HashMap
import java.util.Map
import android.app.Activity
import android.os.Bundle
import android.util.Log
public class FileDigest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState)
File file = new File("/mnt/sdcard/123.txt")
Log.e("MD5", getFileMD5(file))
}
public static String getFileMD5(File file) {
if (!file.isFile()) {
return null
}
MessageDigest digest = null
FileInputStream in = null
byte buffer[] = new byte[1024]
int len
try {
digest = MessageDigest.getInstance("MD5")
in = new FileInputStream(file)
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len)
}
in.close()
} catch (Exception e) {
e.printStackTrace()
return null
}
BigInteger bigInt = new BigInteger(1, digest.digest())
return bigInt.toString(16)
}
public static Map getDirMD5(File file, boolean listChild) {
if (!file.isDirectory()) {
return null
}
Map map = new HashMap()
String md5
File files[] = file.listFiles()
for (int i = 0i <files.lengthi++) {
File f = files[i]
if (f.isDirectory() &&listChild) {
map.putAll(getDirMD5(f, listChild))
} else {
md5 = getFileMD5(f)
if (md5 != null) {
map.put(f.getPath(), md5)
}
}
}
return map
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)