在java后台判断两个文件是否是同一文件
来源:互联网 发布:林俊杰 唱功 知乎 编辑:程序博客网 时间:2024/04/29 12:35
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); } } }
阅读全文
0 0
- 在java后台判断两个文件是否是同一文件
- 判断两个IP是否在同一网段
- Java--判断两个文件是否相同
- java判断文件是否是utf8编码
- Android中如何通过文件路径判断是否是同一文件
- 判断两个文件是否完全相同
- Java判断一个文件是否是链接文件
- C实现判断两个IP是否在同一个子网
- 通过子网掩码判断两个IP是否在同一网段
- 华为OJ-判断两个IP是否在同一子网
- 如何判断两个IP是否在同一网段
- 如何判断两个IP是否在同一网段
- 判断文件是否是可执行文件
- 判断文件是否是可执行文件
- 判断文件是否是图片
- 判断文件是否是图片格式
- (shell)判断文件个数是否为一,是的话判断是否在文件内
- java后台判断是否是手机号
- Json.net实现方便的Json转C#(dynamic动态类型)对象
- [shell]shell位置变量
- 深入理解Java:注解(Annotation)自定义注解入门
- Java基础编程1—随机生成字母数字组合
- php操作mysql
- 在java后台判断两个文件是否是同一文件
- 分布式架构学习之:FastDFS分布式文件系统的Linux安装与使用(单节点)
- FineUI秘密花园(八) — 下拉列表控件
- 树的后序遍历
- JMeter导入Badboy录制脚本,报错:Problem loading XML from:'XX.jmx',cannot determine class for element
- JDBC URL无法连接到vcenter server数据库
- 免费的论文查重网站
- Linux 设备文件的创建和mdev
- NYOJ491 幸运三角形(暴力DFS+打表,水)