繁体   English   中英

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

[英]FileStream.Read(…): Will I ever get a nibble rather than byte?

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

谢谢,布莱恩

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

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

例如,作为硬盘上的坏簇,有这样的事情,在这种情况下,您的Read会因某种异常而失败。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM