赞
踩
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;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。