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

互联网 19-12-12

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基础教程栏目。

以上就是java判断文件是否相同的方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 文件
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java实现计算字符串中不同字符或数字的个数

相关资讯