//简单比较两个图像是否一致
private boolean compare2Image(Bitmap bmp1,Bitmap bmp2)
{
int iteration = 0;
int width = bmp1.getWidth();
int height = bmp1.getHeight();
if(width != bmp2.getWidth()) return false;
if(height != bmp2.getHeight()) return false;
if(width < height)
{
iteration = width;
}
else
{
iteration = height;
}
for(int i = 0; i < iteration; ++i)
{
if(bmp1.getPixel(i, i) != bmp2.getPixel(i,i)) return false;
}
return true;
}
}
//附获取文件md5代码
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
public class FileDigest {
/**
* 获取单个文件的MD5值!
* @param file
* @return
*/
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);
}
/**
* 获取文件夹中文件的MD5值
* @param file
* @param listChild ;true递归子目录中的文件
* @return
*/
public static Map<String, String> getDirMD5(File file,boolean listChild) {
if(!file.isDirectory()){
return null;
}
//<filepath,md5>
Map<String, String> map=new HashMap<String, String>();
String md5;
File files[]=file.listFiles();
for(int i=0;i<files.length;i++){
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;
}
public static void main(String[] args) {
File file1 = new File("a.txt");
File file2 = new File("b.txt");
System.out.println(getFileMD5(file1).equals(getFileMD5(file2)));
}
}
//大小内容比较
package com.test.compare;
// 程序清单
/*
* compare.java
*/
import java.io.*;
import java.math.BigInteger;
import java.security.MessageDigest;
/**
* arg[0] is the first file name
* arg[1] is the second file name
* @author Mosaic
*/
public class compare {
public static void main(String[] args) {
InputStream file1;
InputStream file2;
byte buffer1[];
byte buffer2[];
int fileSize1 = 0;
int fileSize2 = 0;
try {
file1 = new FileInputStream("2008.jpg");
file2 = new FileInputStream("2009.jpg");
fileSize1 = file1.available();
fileSize2 = file2.available();
// read data from the files
buffer1 = new byte[fileSize1];
buffer2 = new byte[fileSize2];
if (fileSize1 != fileSize2) {
System.out.println("The two files are different!");
System.exit(0);
}
file1.read(buffer1);
file2.read(buffer2);
int cursor = 0;
while (cursor < fileSize1) {
if (buffer1[cursor] != buffer2[cursor++]) {
System.out.println("The two files are different!");
System.exit(0);
}
}
System.out.println("The two files are the same");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}