为什么 DigestOutputStream 将 int 转换为 byte?
Why DigestOutputStream cast int to byte?
DigestOutputStream
计算其内容的哈希值,例如MD5哈希值。如果我们查看它的来源,我们会看到:
public void write(int b) throws IOException {
digest.update((byte)b);
out.write(b);
}
它将 int
(32 位)转换为 byte
(8 位)。这样的选角可以吗?
OutputStream.write(int)
的约定是写入参数的最低8字节。这里没有什么神秘之处。如果 OutputStream
正在写入文件,也会发生同样的事情。
DigestOutputStream
计算其内容的哈希值,例如MD5哈希值。如果我们查看它的来源,我们会看到:
public void write(int b) throws IOException {
digest.update((byte)b);
out.write(b);
}
它将 int
(32 位)转换为 byte
(8 位)。这样的选角可以吗?
OutputStream.write(int)
的约定是写入参数的最低8字节。这里没有什么神秘之处。如果 OutputStream
正在写入文件,也会发生同样的事情。