首页 > 后端开发 > C++ > 如何有效地将输入流转换为C#中的字节数组?

如何有效地将输入流转换为C#中的字节数组?

Patricia Arquette
发布: 2025-01-31 06:56:09
原创
368 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板