java中怎么判断文件是否相同-创新互联

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判断文件是否相同的方法的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:java中怎么判断文件是否相同-创新互联
标题网址:http://ybzwz.com/article/ddgpis.html