java比较图片是否相同(转)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java比较图片是否相同(转)

java比较图片是否相同(转)

 2013/9/9 16:07:18  弦上的福音  程序员俱乐部  我要评论(0)
  • 摘要:java比较图片是否相同//判断的办法是分别将两个文件读进来//先判断着两个文件的长度,如果长度不一样,那肯定不一样//如果两个文件的长度(大小)一样,那么就对文件中的每一个字节进行比对//只要有一个字节不同,两个文件就不同。//否则两个文件就是相同的//代码如下:(JDK1.4+)(代码格式被吃掉了,请自己手工排一下)package兲髙亻壬鳥飛;importjava.io.FileInputStream;importjava.io.FileNotFoundException
  • 标签:图片 Java
java比较图片是否相同

class="java" name="code"> //判断的办法是分别将两个文件读进来

//先判断着两个文件的长度,如果长度不一样,那肯定不一样

//如果两个文件的长度(大小)一样,那么就对文件中的每一个字节进行比对

//只要有一个字节不同,两个文件就不同。

//否则两个文件就是相同的

//代码如下:(JDK1.4+)(代码格式被吃掉了,请自己手工排一下)

package 兲髙亻壬鳥飛;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class Answer1 {

public static void main(String[] args) {

//文件名要用绝对路径

//相对路径也可以,但是容易弄错

String fileName1 = "xxx";

//写你需要判断的第一个文件的文件名

String fileName2 = "yyy";

//写你需要判断的第二个文件的文件名

FileInputStream fis1 = null;

FileInputStream fis2 = null;

try {

fis1 = new FileInputStream(fileName1);

fis2 = new FileInputStream(fileName2);

int len1 = fis1.available();

int len2 = fis2.available();

if (len1 == len2) {

//长度相同,则比较具体内容

//建立两个字节缓冲区

byte[] data1 = new byte[len1];

byte[] data2 = new byte[len2];

//分别将两个文件的内容读入缓冲区

fis1.read(data1);

fis2.read(data2);

//依次比较文件中的每一个字节

for (int i=0; i<len1; i++) {

//只要有一个字节不同,两个文件就不一样

if (data1[i] != data2[i]) {

System.out.println("文件内容不一样"); return; }

} System.out.println("两个文件完全相同");

} else {

//长度不一样,文件肯定不同

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

//关闭文件流,防止内存泄漏

if (fis1 != null) {

try {

fis1.close();

} catch (IOException e) {

//忽略

e.printStackTrace();

}

} if (fis2 != null) {

try {

fis2.close();

} catch (IOException e) {

//忽略

e.printStackTrace();

}

}

}

}

}


发表评论
用户名: 匿名