私は 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
よろしく、 バウィヤ
バイト数が余分にあることをどうやって知っていますか? – erickson
@ericksonこの情報で質問を編集します – bhavs