我尝试为文件生成MD5校验和,但不知何故我使用它的方式存在问题:
@Test
public void streamTestApacheCommonsCodec14() {
String hash = null;
try {
InputStream is = new FileInputStream("C:\\Work\\dataset\\main\\main.xml");
BufferedInputStream entryBIS = new BufferedInputStream(is,
Constants.BUFFER_MEDIUM);
hash = DigestUtils.md5Hex(entryBIS);
assertThat(hash,is(equalTo("9be6e92c6a8b684a35420cb087704a4c")));
} catch (IOException e) {
e.printStackTrace();
fail();
}
}
传递 如果我在md5Hex参数中使用fileStream,我仍然会得到正确的校验和
@Test
public void fastMd5Twmacinta271() {
String hash = null;
try {
hash = MD5.asHex(MD5.getHash(new File("C:\\Work\\dataset\\main\\main.xml")));
assertThat(hash,is(equalTo("9be6e92c6a8b684a35420cb087704a4c")));
} catch (IOException e) {
e.printStackTrace();
fail();
}
}
传递
@Test
public void fastMd5TwmacintaStream271() {
String hash = null;
try {
InputStream fileStream = new FileInputStream("C:\\Work\\dataset\\main\\main.xml");
BufferedInputStream entryBIS = new BufferedInputStream(fileStream,
Constants.BUFFER_LARGE);
com.twmacinta.util.MD5 md5Reader = new com.twmacinta.util.MD5(entryBIS);
hash = md5Reader.asHex();
assertThat(hash,is(equalTo("9be6e92c6a8b684a35420cb087704a4c")));
} catch (IOException e) {
e.printStackTrace();
fail();
}
失败 如果我在构造函数中使用fileStream,我仍然会得到错误的,但是不同的校验和
有人知道问题在哪里吗?这是一个twmacinta bug吗?
佐尔坦
答案 0 :(得分:0)
问题是由于未将字符编码设置为UTF8
引起的