java判断文件是否相同的数据_java判断文件是否相同的方法

794e6b4262fc8181c5183c51b2ee745c.png

java判断文件是否相同的方法:

1、计算MD5或SHA-1然后对比判断// 计算文件的 MD5 值 根据MD5值 判断文件是否是同一个文件

public static String getFileMD5(File file) {

if (!file.isFile()) {

return null;

}

MessageDigest digest = null;

FileInputStream in = null;

byte buffer[] = new byte[8192];

int len;

try {

digest =MessageDigest.getInstance("MD5");

in = new FileInputStream(file);

while ((len = in.read(buffer)) != -1) {

digest.update(buffer, 0, len);

}

BigInteger bigInt = new BigInteger(1, digest.digest());

return bigInt.toString(16);

} catch (Exception e) {

e.printStackTrace();

return null;

} finally {

try {

in.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}// 计算文件的 SHA-1 值 根据SHA-1值 判断文件是否是同一个文件

public static String getFileSha1(File file) {

if (!file.isFile()) {

return null;

}

MessageDigest digest = null;

FileInputStream in = null;

byte buffer[] = new byte[8192];

int len;

try {

digest =MessageDigest.getInstance("SHA-1");

in = new FileInputStream(file);

while ((len = in.read(buffer)) != -1) {

digest.update(buffer, 0, len);

}

BigInteger bigInt = new BigInteger(1, digest.digest());

return bigInt.toString(16);

} catch (Exception e) {

e.printStackTrace();

return null;

} finally {

try {

in.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

2、直接判断内容是否相同public class IOOperation

{

public static void main(String[] args)

{

FileInputStream File1 = null;

FileInputStream File2 = null;

BufferedReader in = null;

String sFile;

if(args.length != 2)

{

System.out.println("The command line should be: java IOOperation testX.txt testX.txt");

System.out.println("X should be one of the array: 1, 2, 3");

System.exit(0);

}

try

{

File1 = new FileInputStream(args[0]);

File2 = new FileInputStream(args[1]);

try

{

if(File1.available() != File2.available())

{

//长度不同内容肯定不同

System.out.println(args[0] + " is not equal to " + args[1]);

}

else

{

boolean tag = true;

while( File1.read() != -1 && File2.read() != -1)

{

if(File1.read() != File2.read())

{

tag = false;

break;

}

}

if(tag == true)

System.out.println(args[0] + " equals to " + args[1]);

else

System.out.println(args[0] + " is not equal to " + args[1]);

}

}

catch(IOException e)

{

System.out.println(e);

}

}

catch (FileNotFoundException e)

{

System.out.println("File can't find..");

}

finally

{

try

{

if(File1 != null)

File1.close();

if(File2 != null)

File2.close();

}

catch (IOException e)

{

System.out.println(e);

}

}

}

更多java知识请关注java基础教程栏目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值