1.具体思路:编写一个A方法用来获取一个文件的字节码,通过FileInputStream的read方法将文件的字节码读取到byte[] 数组中去,数组的长度通过File的length方法获取,这样可以避免数组长度过长或者过短造成程序出错,方法的返回值类型为一个数组类型。然后编写一个比对的方法,首先两次调用A方法,获取A方法中的数组,先判断数组长度是否一致,然后将数组中的元素逐个取出进行对比。
/*
* Copyright (c) 2020, 2023, All rights reserved.
*
*/
package cn.scl;
import java.io.File;
import java.io.FileInputStream;
/**
* <p>Project: JavaStudy - Work4</p>
* <p>Powered by scl On 2023-07-21 17:13:03</p>
* <p>描述:<p>
*
* @author scl [1846080280@qq.com]
* @version 1.0
* @since 17
*/
public class Work4 {
//判断是不是同一个文件
public static void main(String[] args) {
byte[] b = word(new File("E:\\user1.txt"));
byte[] a = word(new File("E:\\user23.txt"));
comparison(a,b);
}
//比对方法
public static void comparison(byte[] a,byte[] b){
int i = 0;
boolean f = false;
if (b.length == a.length) {
while (i < b.length) {
int bb = b[i];
int aa = a[i];
if (aa != bb) {
System.out.println("不是同一个文件");
f = false;
break;
}
++i;
f=true;
}
}else {
System.out.println("不是同一个文件");
}
if (f) System.out.println("是同一个文件");
}
//获取一个文件的字节数组 方法
public static byte[] word(File file) {
byte[] bytes = null;
if (file.isFile()) {
long len = file.length();
try (FileInputStream ff = new FileInputStream(file)) {
StringBuilder str = new StringBuilder();
bytes = new byte[(int) len];
ff.read(bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
return bytes;
}
}