2012-02-14 7 views
2

私は this stackoverflow discussionのコードをjavaのファイルのチェックサムを計算するために使用しました。JavaのMD5チェックサム計算に関する明確化

私は次のように私は私の問題でこれを適用しています。この作業について少し混乱しています:

私はいくつかのデータを使用してファイルを持っています。私は、ファイル名に等しく、この12バイトであり、私は私が読まれたバイト数が4096 + 12バイトであることを認識し、チェックサムのコードを実行しようとすると

System.out.println(file1content.toString().getBytes().length); the o/p is 4096 bytes 

を使用して、ファイル内のテキストのサイズを計算しています?

file1と同じ内容の別のfile2があります(私は文字列にテキストを抽出してString.equalsと比較するため、これはわかりますが)生成されるチェックサムは異なります。なぜこれが起こっているのだろうか?

ここに何か不足していますか?

編集1:

InputStream fis = new FileInputStream(filename); 
byte[] buffer = new byte[1024]; 
    do { 
     numRead = fis.read(buffer); 
     System.out.println(" "+ numRead); 
     if (numRead > 0) { 
      complete.update(buffer, 0, numRead); 
     } 
    } while (numRead != -1); 

    fis.close(); 

numreadの出力は次のとおりです:

私は、次のループを使用してファイルからデータを読んでいます

1024 
1024 
1024 
1024 
12 
-1 

よろしく、 バウィヤ

+0

バイト数が余分にあることをどうやって知っていますか? – erickson

+0

@ericksonこの情報で質問を編集します – bhavs

答えて

1

さて、バグの内容を知りましたが、バグか、それが既に存在していた場合。

ファイルから読み取られるデータが正しくないことを認識しました。ファイルの一部が複数回読み込まれていたため、開始位置と終了位置を指定してファイルからデータを取得できるようにコードを変更しました。

誰かがこの問題に直面している場合は、私が解決策を掲載できることをお知らせください。

よろしくお願いします。

関連する問題