首頁 > 後端開發 > C++ > 如何有效地將輸入流轉換為C#中的字節數組?

如何有效地將輸入流轉換為C#中的字節數組?

Patricia Arquette
發布: 2025-01-31 06:56:09
原創
366 人瀏覽過

How to Efficiently Convert an Input Stream to a Byte Array in C#?

c#輸入流到字節數組:實用指南

> 在處理C#中的二進制數據時,將輸入流轉換為字節數組是一個常見的任務。 最好的方法取決於您是否知道流的大小。

已知的流大小:>> 如果流的長度可用,則提供一個簡單的解決方案:>

這將整個流直接讀取為字節數組。

> BinaryReader.ReadBytes

未知流尺寸:
using (BinaryReader br = new BinaryReader(s))
{
    byte[] b = br.ReadBytes((int)s.Length);
}
登入後複製

對於長度未知的流,必須使用更健壯的迭代方法:

此方法在將數據轉換為字節數組之前讀取塊中的流,將數據累積。 >

.net 4及以上:stream.copyto

>
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();
}
登入後複製
.net 4及更高版本的版本使用

>:MemoryStream提供了更高效,更簡潔的解決方案

性能和資源管理:

>

請記住,塊中的閱讀會影響性能。 嘗試不同的緩衝尺寸,以優化您的特定需求。 始終確保正確關閉流程以避免資源洩漏。 Stream.CopyTo

以上是如何有效地將輸入流轉換為C#中的字節數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板