1
我必須完全讀取「.bin」文件,並將流傳遞給函數。我試着用BinaryReader,它能夠逐字節地讀取值,我想將整個文件作爲字符串流傳遞給我的函數。 StreamReader的用法提供了垃圾信息,它看起來像StreamReader無法正確讀取bin文件。如何將C#中的BinaryReader轉換爲Stream?
在此先感謝。
我必須完全讀取「.bin」文件,並將流傳遞給函數。我試着用BinaryReader,它能夠逐字節地讀取值,我想將整個文件作爲字符串流傳遞給我的函數。 StreamReader的用法提供了垃圾信息,它看起來像StreamReader無法正確讀取bin文件。如何將C#中的BinaryReader轉換爲Stream?
在此先感謝。
不要將二進制數據作爲string
傳遞。相反,使用byte[]
這是從任何Stream
分離,你可能已經讀過它。 StreamReader
用於讀取文本是正確的,因此您需要直接使用BinaryReader
或僅使用Stream.Read()
method。如果您正在閱讀的數據流允許查找(通過CanSeek
屬性公開),則可以發現其Length
,並一次讀取數據流中的所有字節。
但是,如果數據流非常大或者不支持查找,則需要在讀取數據塊時進行更詳細的說明,直到Read()
方法返回0
(這意味着數據流的末尾有已達到)。
沒有StreamReader.ReadToEnd()
相當於讀取二進制數據,但定義一個作爲擴展方法不是很難。
請說明你想要做什麼。你想傳遞流對象到你的函數或文件的內容?如果是後者,是否要將文件內容作爲字節數組傳遞,或者將每個字節表示爲十六進制值的字符串傳遞給字符串? –
您的文件可能不是Unicode文本。你需要了解你正在閱讀的文件。 – SLaks
我需要傳遞一個不是二進制的流,而是一個字符串,在那裏我可以readlines等。 – Vikyboss