关于计算本地文件的CRC64
lalinking opened this issue · 2 comments
lalinking commented
再次打扰:
- 使用sdk内置的CRC64类计算出来的值始终不对,请问是不是我哪个地方有错?
- “
对于crc64功能上线以前的文件不能返回crc64值
”,我在官网没看到这个功能是什么时候上线的,方便在这告知一下这个时间点吗?我们公司用cos已经蛮多年了,需要确认一下这个上线时间。
public static String getCRC64FromFile(File file) throws IOException {
final CRC64 total = new CRC64();
try (FileInputStream stream = new FileInputStream(file)) {
final byte[] b = new byte[1024 * 1024];
while (true) {
final int read = stream.read(b);
if (read <= 0) {
break;
}
total.update(b, read);
}
}
return String.valueOf(total.getValue());
}
lalinking commented
今天又验证了一下,用5M的文件计算得到正确值,用10M的就是错误值,得到一个负数。
应该是哪个变量超出范围了吧
lalinking commented
已经解决,不能String.valueOf。
java8 中用 Long.toUnsignedString