c#輸入流到字節數組:實用指南
> 在處理C#中的二進制數據時,將輸入流轉換為字節數組是一個常見的任務。 最好的方法取決於您是否知道流的大小。
已知的流大小:
>
BinaryReader.ReadBytes
<code class="language-csharp">using (BinaryReader br = new BinaryReader(s)) { byte[] b = br.ReadBytes((int)s.Length); }</code>
對於長度未知的流,必須使用更健壯的迭代方法:
此方法在將數據轉換為字節數組之前讀取塊中的流,將數據累積。 >
.net 4及以上:stream.copyto><code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[16 * 1024]; // Adjust buffer size as needed int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } byte[] b = ms.ToArray(); }</code>.net 4及更高版本的版本使用
>:MemoryStream
提供了更高效,更簡潔的解決方案
性能和資源管理:
請記住,塊中的閱讀會影響性能。 嘗試不同的緩衝尺寸,以優化您的特定需求。 始終確保正確關閉流程以避免資源洩漏。 Stream.CopyTo
以上是如何有效地將輸入流轉換為C#中的字節數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!