当前位置:   article > 正文

Java通过字节流比对两个文件是不是同一个文件_判断流文件内容是否一致

判断流文件内容是否一致

1.具体思路:编写一个A方法用来获取一个文件的字节码,通过FileInputStream的read方法将文件的字节码读取到byte[] 数组中去,数组的长度通过File的length方法获取,这样可以避免数组长度过长或者过短造成程序出错,方法的返回值类型为一个数组类型。然后编写一个比对的方法,首先两次调用A方法,获取A方法中的数组,先判断数组长度是否一致,然后将数组中的元素逐个取出进行对比。

  1. /*
  2. * Copyright (c) 2020, 2023, All rights reserved.
  3. *
  4. */
  5. package cn.scl;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. /**
  9. * <p>Project: JavaStudy - Work4</p>
  10. * <p>Powered by scl On 2023-07-21 17:13:03</p>
  11. * <p>描述:<p>
  12. *
  13. * @author scl [1846080280@qq.com]
  14. * @version 1.0
  15. * @since 17
  16. */
  17. public class Work4 {
  18. //判断是不是同一个文件
  19. public static void main(String[] args) {
  20. byte[] b = word(new File("E:\\user1.txt"));
  21. byte[] a = word(new File("E:\\user23.txt"));
  22. comparison(a,b);
  23. }
  24. //比对方法
  25. public static void comparison(byte[] a,byte[] b){
  26. int i = 0;
  27. boolean f = false;
  28. if (b.length == a.length) {
  29. while (i < b.length) {
  30. int bb = b[i];
  31. int aa = a[i];
  32. if (aa != bb) {
  33. System.out.println("不是同一个文件");
  34. f = false;
  35. break;
  36. }
  37. ++i;
  38. f=true;
  39. }
  40. }else {
  41. System.out.println("不是同一个文件");
  42. }
  43. if (f) System.out.println("是同一个文件");
  44. }
  45. //获取一个文件的字节数组 方法
  46. public static byte[] word(File file) {
  47. byte[] bytes = null;
  48. if (file.isFile()) {
  49. long len = file.length();
  50. try (FileInputStream ff = new FileInputStream(file)) {
  51. StringBuilder str = new StringBuilder();
  52. bytes = new byte[(int) len];
  53. ff.read(bytes);
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. }
  57. }
  58. return bytes;
  59. }
  60. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/871620
推荐阅读
相关标签
  

闽ICP备14008679号