gpt4 book ai didi

c# - 文件流.读取(...): Will I ever get a nibble rather than byte?

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:08 24 4
gpt4 key购买 nike

我在 C# 中对字节数组执行大量按位运算。我通过调用 FileStream.Read 获取数组。我刚刚意识到我不确定如果文件中某处有坏字节或损坏字节会发生什么。例如,可能会从末端切掉一个半字节或类似的东西。 FileStream 会用它做什么? Read 方法是否会将困惑的字节“四舍五入”?会抛出异常吗?或者这是几乎永远不会发生的事情?

谢谢,布赖恩

最佳答案

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

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

虽然有这样的事情,例如你的硬盘上有一个坏的簇,在这种情况下你的读取会因某种异常而失败。

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

关于c# - 文件流.读取(...): Will I ever get a nibble rather than byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com