【发布时间】:2015-04-08 04:36:55
【问题描述】:
我必须通过读取文件来生成校验和,为此,首先,我必须读取 8 个字节的标头,然后跳过一些字节(这将是可变长度,并且可用于每个文件)。但是在读取前 8 个字节并存储到字节数组之后,如果我在同一个输入流上运行 skip,它总是返回 0。我无法找出可能是什么原因。请在下面找到代码部分:
MessageDigest md = MessageDigest.getInstance("SHA1");
DigestInputStream din = new DigestInputStream(inputstream, md);
while(din.read(headerArr,0,8) != -1){
}
byte[]headerData = md.digest();
//skip some bytes
long skippedBytes = inputstream.skip(bytesTobeskipped);
但是,如果我不阅读标题然后跳过工作正常,它会尝试跳过提供的字节。 所以,请帮我解决这个问题或指出我做错了什么。
【问题讨论】:
标签: java inputstream fileinputstream