FileStream.Read(...):我会得到一个半字节而不是字节吗?

时间:2010-06-18 15:33:26

标签: c# .net bytearray filestream

我正在对C#中的字节数组进行一些按位操作。我通过调用FileStream.Read获取数组。我刚才意识到,我不确定如果一个文件在某个地方有一个错误的字节或损坏的字节会发生什么。例如,可能会从末端切断半字节或类似的东西。 FileStream会用它做什么?通过Read方法将'四舍五入'的字节弄乱了吗?是否会抛出异常?或者这是否几乎不会发生?

谢谢, 布赖恩

1 个答案:

答案 0 :(得分:4)

如果你的FileStream.Read调用成功,那么就没有文件有一个错误的字节或损坏的字节。成功读取的每个字节和文件的一部分是0到255之间的值。程序如何解释它是最重要的。

如果FileStream.Read返回例如5个字节,则可以依赖从文件中成功读取这5个字节,并且所有字节位都成功地放入缓冲区。

虽然硬盘上存在坏集群,但是在这种情况下,您的Read会因某种异常而失败。

为了完整性,我还应该提到每种文件类型都有文件格式。即你应该如何解释二进制数据。一个字节或几个字节可能不遵循文件格式。通过这种方式,您可以将一个字节视为已损坏或无效,但就文件格式指定的内容而言,它并未真正损坏或无效。