Javaは、二つのファイルが同一であるかどうかを判断します

    どのように2つのファイルがそれと同じであるかどうかを判断するためにJavaを使用するには?私のアプローチがあります

(1)最初の二つの文書の内容の長さを比較します。

(2)同じ長さ、MD5値の場合には、その後、2つのファイルを比較します。

     導入されるジャーパッケージの必要性:

        <依存性> 
            <のgroupId>コモンズコーデック</のgroupId> 
            <たartifactId>コモンズコーデック</たartifactId> 
            <バージョン> 1.11 </バージョン> 
        </依存>

     2つのファイルが同じバイトストリームであるかどうかを確認するための機能を提供します。

 / ** 
     *ストリームは、ファイルの2バイトに等しいかどうかを確認
     * @return 真のブール等しい
     * @throws のIOException
      * / 
    プライベート 静的 ブール isSameFiles(バイト [] fileByte1、バイト[] fileByte2){ 
        文字列firstFileMd5 = DigestUtils.md5Hex(fileByte1) ; 
        文字列secondFileMd5 = DigestUtils.md5Hex(fileByte2);
         IF (firstFileMd5.equals(secondFileMd5)){ 
            するSystem.out.println( "---- ------ MD5等しい" + firstFileMd5);
             戻り trueに; 
        }{ 
            するSystem.out.println(firstFileMd5 +は+ "firstFileMd5 ++不等++ secondFileMd5 =である" secondFileMd5)。
            リターン はfalse ; 
        } 
    }

ビットのbase64文字列をファイルに等しいかどうかをチェックします

      バイト配列に文字列に直接転送して、関数isSameFilesを呼び出します。

パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException {
         // TODO自動生成方法スタブを
        文字列のIMG = "iVBORw0KGgoAAAANSUhEUgAAApsAAAEPCAYAAAANjQ + sAAAOqUlEQVR4Xu3WMREAAAgDMerfNCp CwI65Bh + + + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt 5wgQIECAAAECBAhEAot2zRIgQIAAAQIECBA4sekJCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + + + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQ gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJtIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + + + gAABAgQIECBAIBMQmxmt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + + + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt +gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + + + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGx gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJtmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + + + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAAB gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJtsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDIBsZnRGiZAgAABAgQIEBCbfoAAAQIECBAgQCATEJsZrWECBAgQIECAAAGx6QcIECBAgAABAgQyAbGZ0RomQIAAAQIECBAQm36AAAECBAgQIEAgExCbGa1hAgQIECBAgAABsekHCBAgQIAAAQIEMgGxmdEaJkCAAAECBAgQEJt + gAABAgQIECBAIBMQmxmtYQIECBAgQIAAAbHpBwgQIECAAAECBDKBB16TARB6VWp0AAAAAElFTkSuQmCC」; 

        文字列imgReal = "iVBOI =" ; 

        BASE64Decoderデコーダ = 新しいBASE64Decoder()。
        もし(isBase64(IMG)){ 
            するSystem.out.println( "IMGベース64" )。
        } 
        であれば(isBase64(imgReal)){ 
            するSystem.out.println( "imgRealベース64" )。
        } 
        バイト [] imageByteArray = NULL ;
        試す{ 
            imageByteArray = decoder.decodeBuffer(IMG)。
            System.out.println(isSameFiles(imageByteArray、decoder.decodeBuffer(imgReal)))。
        } キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
        } 

        のSystem.out.println(chechFile())。
    }

二つの文書が等しいかどうかを確認する2

     ファイルを読んだ後、バイトストリームに変換:

    /**
     * 检查两个文件是否相等,假设 C:\Users\Pictures目录下有两个图片文件
     * @return boolean true 相等
     * @throws IOException
     */
    private static boolean chechFile() throws IOException {
        File file1 = new File("C:\\Users\\Pictures\\test1.jpg");
        File file2 = new File("C:\\Users\\Pictures\\test2.jpg");
        if (file1.length() != file2.length()) {
            System.out.println("+++++++++ unequal +++++++++++++");
            return false;
        }
        InputStream fileStream1 = new FileInputStream(file1);
        InputStream fileStream2 = new FileInputStream(file2);
//        InputStream 转 byte[]
        byte[] imageByteArray = new byte[fileStream1.available()];
        System.out.println(isSameFiles(imageByteArray, new byte[fileStream2.available()]));
        return true;
    }

 

     以上方法验证小文件妥妥的,大文件请移步:《JAVA MD5 验证大文件(改)

Reference

https://blog.csdn.net/wxz980927155/article/details/82257225

https://www.cnblogs.com/DylanZ/p/6269042.html

 

おすすめ

転載: www.cnblogs.com/east7/p/12130807.html