簡體   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