C# 读取(…):我会得到一个半字节而不是字节吗?

C# 读取(…):我会得到一个半字节而不是字节吗?,c#,.net,bytearray,filestream,C#,.net,Bytearray,Filestream,我正在对C#中的字节数组执行许多位操作。我正在通过调用FileStream.Read获取数组。我刚刚意识到,如果文件中某个地方有坏字节或损坏字节,我不确定会发生什么。例如,可能一小口被从末端切掉或类似的东西。文件流将如何处理它?读方法会将混乱的字节“四舍五入”掉吗?是否会引发异常?或者这是一件几乎永远不会发生的事情 谢谢, brian如果您的FileStream.Read调用成功,则不存在文件有坏字节或损坏字节的情况。成功读取的每个字节以及文件的一部分都是0到255之间的值。重要的是程序如何解释

我正在对C#中的字节数组执行许多位操作。我正在通过调用FileStream.Read获取数组。我刚刚意识到,如果文件中某个地方有坏字节或损坏字节,我不确定会发生什么。例如,可能一小口被从末端切掉或类似的东西。文件流将如何处理它?读方法会将混乱的字节“四舍五入”掉吗?是否会引发异常?或者这是一件几乎永远不会发生的事情

谢谢,
brian

如果您的
FileStream.Read
调用成功,则不存在文件有坏字节或损坏字节的情况。成功读取的每个字节以及文件的一部分都是0到255之间的值。重要的是程序如何解释它

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

例如,硬盘上有一个坏的集群,在这种情况下,您的读取会失败,并出现某种异常


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

如果您的
FileStream.Read
调用成功,则不存在文件有坏字节或损坏字节的情况。成功读取的每个字节以及文件的一部分都是0到255之间的值。重要的是程序如何解释它

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

例如,硬盘上有一个坏的集群,在这种情况下,您的读取会失败,并出现某种异常


为了完整起见,我还应该提到,每种文件类型都有一种文件格式。即,您应该如何解释二进制数据。一个字节或几个字节可能不符合文件格式。通过这种方式,您可以将字节视为已损坏或无效,但它并不是真的损坏或无效,只是文件格式指定的内容有误。

我想这就是我需要看到的答案。谢谢你的澄清。我想这是我需要看到的答案。谢谢你的澄清。