java如何判断俩个文件是否相同的?

例如用一个文件另存为成两个不同名的文件,用输入输出流编程,要如何来进行比较这两个文件是否相等呢?... 例如用一个文件另存为成两个不同名的文件,用输入输出流编程,要如何来进行比较这两个文件是否相等呢? 展开
 我来答
匿名用户
推荐于2017-12-16
展开全部
//判断的办法是分别将两个文件读进来
//先判断着两个文件的长度,如果长度不一样,那肯定不一样
//如果两个文件的长度(大小)一样,那么就对文件中的每一个字节进行比对
//只要有一个字节不同,两个文件就不同。
//否则两个文件就是相同的

//代码如下:(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();
}
}
}
}
}
匿名用户
2013-07-12
展开全部
简单啊, MD5 一下,对比MD5的值就行了~~~

现在网上判断文件有没有被修改不就是用MD5么...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-12
展开全部
这个没有弄过,,,
不过说个理论给你试下看行不行~
就是你把那两个文件的内容给弄出来,来比较嘛~
或者弄成一个对象类,再进行比较~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-12
展开全部
不怎么明白你的意思,你用一个文件另存为两个不同的文件,文件名不同,而内容相通。而你所说的比较两个文件是否相等到底是比较什么啊???文件名还是内容??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式