为什么DigestOutputStream将int转换为byte?

时间:2015-05-29 03:13:35

标签: java md5

DigestOutputStream计算其内容的哈希值,例如MD5哈希值。如果我们看一下它的来源,我们会看到:

public void write(int b) throws IOException {
    digest.update((byte)b);
    out.write(b);
}

它将int(32位)转换为byte(8位)。可以做这样的演员吗?

1 个答案:

答案 0 :(得分:0)

OutputStream.write(int)的契约是它写入参数的最低8个字节。这里没有神秘感。如果OutputStream正在写入文件,则会发生同样的事情。