JAVA计算文件的crc32校验码

时间:2023-03-09 18:47:29
JAVA计算文件的crc32校验码
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream; import org.junit.Test; public class CRCTest { @Test
public void testFileCRC() {
try {
System.out.println(getCRC32("C:\\software.xml"));
System.out.println(checksumBufferedInputStream("C:\\software.xml"));
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 采用BufferedInputStream的方式加载文件
*/
public static long checksumBufferedInputStream(String filepath) throws IOException {
InputStream inputStream = new BufferedInputStream(new FileInputStream(filepath));
CRC32 crc = new CRC32();
byte[] bytes = new byte[1024];
int cnt;
while ((cnt = inputStream.read(bytes)) != -1) {
crc.update(bytes, 0, cnt);
}
inputStream.close();
return crc.getValue();
} /**
* 使用CheckedInputStream计算CRC
*/
public static Long getCRC32(String filepath) throws IOException {
CRC32 crc32 = new CRC32();
FileInputStream fileinputstream = new FileInputStream(new File(filepath));
CheckedInputStream checkedinputstream = new CheckedInputStream(fileinputstream, crc32);
while (checkedinputstream.read() != -1) {
}
checkedinputstream.close();
return crc32.getValue();
}
}

注意如果要获取CRC32的getValues返回值的字符串,应该采用:  Long.toHexString(crc32.getValue())    方式返回字符串。

原因如下:

aaarticlea/png;base64,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*gZAN+YOKD6EqM70N7APzOExb2bPrdFJ9d/WlIjwgc0RYYbK3s+L/ceoTWFSgAkz2dt5eufL2vffeXrmS+sD8yHwg/7U/8J9lZxWXlVVgrskcZCooavI/8hcJRFhT1gdhfZ3KTG8D+8A8jvpIqE6q766+VIQHZI4IK6xceXvlSmhVRYBFBSoAhIq9SCAQKghVHQOLSg9nMz82UpSMyb7O2ddezrVsyL2wgfxgwx+3P5D/2geX1j/BfJadZU4prk/+SF6TOcjcVFGT/3Fp/RPMRQIhG/IHFR9CVWZ6G9gH5nGYtrJn1+mk+u7qS0V4QOaIsML5PqhUZYhqUZ3vSSWTgnh97nFZ4kQ6ilJA8CQbI4TKAVGWAQCg3ESwqJxQs/3hg9IeHNxKiJOdVjFYq0wSKks3IRAAAIASEdaiSne3OeKkEwH94OBWYYZfh2wnH7iWxyihCoh6CQAAoNTEm4+KNqE47HlCLq0iA4QKAADqmTjzUUmyJvrAogIAABBEHBbVQIfcmYLAXqMKTp8IoQIAgHom1gy/thSJ16gc97+geb+MaUIFxz8AACgv8a5ROdYVp0aOSqnsLR/DhMrKuPkpsKcKAADKQKwWlSUWqmyn/iaqjGlCZW1qQGYaAAAoIzFbVLw/RUiVypgmVFijAgCA8hKrRcVu+HXjVoRQqQyECgAA6pvQFhUdA4kNhsScZVzP+/eImgaZZRAqAACoZxA9PSQQKgAAKC+Inh4OxPoDAIAyA4sqFO1r4JUOAADlBRaVHshHBQAAFQIWFQAAAKOpJovq6vWvAQAA1BvVZFFV/GUBAAAoP7CoAAAAGA0sKgAAAEYDiwoAAIDRRLWonKh9XPQj97g4caL6LIQKAAAARwSLygk12x8hKG2IsxAqAAAAX18Nb1Glu9sccdJJ83FwcKssw2/gWQgVAACAq8WsUWkLlTSph/oshAoAAMDVYrz+goWKz5qofxZCBQAA4PrXV+OxqAY6VO4S6rMQKgAAABT/D8CDgPV8oqP4AAAAAElFTkSuQmCC" alt="" />