字节数组流 CRC 检查



我在 c# 中检查 crc 时遇到了一个小问题,我需要读取一个包含最后 8 个字节的 crc 值的文件,我现在怎么做就像

  • 在文件模式打开的情况下使用文件流
  • 计算流长度减去 8 个字节
  • stream.read(buffer,0,streamlength minus 8 bytes)
  • CRC 计算哈希传入缓冲区

这留下了剩余的 8 字节,我将其与 crcvalue 进行比较

得到的问题是它对小文件工作正常,但显然我得到了一个系统内存不足的内存异常对于较大的文件,我知道 computehash 会接受一个流,但它要么以完整流传递,这意味着我无法获取剩余的字节。

有没有更好的方法

最亲切的问候

提供代码片段将证明对我们试图帮助您的我们有很大帮助。虽然我明白你在说什么,但我永远无法确定我是否在不阅读你的代码的情况下得到了你所做的。

不确定您要对该文件执行什么操作,我建议您也查看MemoryStream类。MemoryStream的一个快速优点是无需在应用程序中创建临时缓冲区和文件,这意味着您实际上可以节省内存。

您可以以类似于MemoryStream的方式应用当前方法,看看是否有效。

关于内存流的信息:http://msdn.microsoft.com/en-us/library/system.io.memorystream%28v=vs.110%29.aspx

最新更新