2010-09-06 54 views
3

將int數組的二進制表示(Int32[])寫入Stream的最佳方法是什麼?將Int數組寫入Stream in .NET

Stream.Write只接受byte[]作爲源,我想避免轉換/複製數組到byte[](數組,而是直接從「原始位置」直接流)。

在一個更面向系統的語言(又名C++)我想簡單地把int數組的byte*但據我的理解,這是不可能用C#(而且,鑄造byte*byte[]是行不通的出兩種方式)

感謝

馬丁

PS:其實,我也想流單一int值。使用BinaryConverter.GetBytes()是否創建一個新的字節數組?在這種情況下,我致以問題如何有效地流單int值...

回答

9

最簡單的辦法是使用BinaryWriter包裹你的輸出流,並呼籲Write(int)爲每個int值。如果沒有爲您使用正確的字節順序,您可以使用我的MiscUtil庫中的EndianBinaryWriter

我不知道任何內置的功能可以更有效地做到這一點......我希望流中的緩衝大部分都會照顧它。

+0

在非常不科學測試緩衝似乎處理循環陣列之上並且在每個調用寫(INT)有效的價值。謝謝。 – 2014-10-05 11:12:42