在 C# 中将流转换为字节数组

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  1. 用 C# 中的 Stream.CopyTo() 函数将 Stream 转换为 byte[]
  2. 用 C# 中的 MemoryStream.ToArray() 函数将 MemoryStream 转换为 byte[]
在 C# 中将流转换为字节数组

本教程将介绍在 C# 中将流转换为字节数组的方法。

用 C# 中的 Stream.CopyTo() 函数将 Stream 转换为 byte[]

在 C# 中,Stream.CopyTo(memoryStream) 函数从以下位置复制字节将 Stream 转换为 memoryStream。我们可以将 Stream.CopyTo() 函数与 MemoryStream 类的对象一起使用,以将流转换为字节数组。以下代码示例向我们展示了如何使用 C# 中的 Stream.CopyTo() 函数将流转换为字节数组。

using System;
using System.IO;

namespace stream_to_byte_array
{
    class Program
    {
        public static byte[] streamToByteArray(Stream input)
        {
            MemoryStream ms = new MemoryStream();
            input.CopyTo(ms);
            return ms.ToArray();
        }
        static void Main(string[] args)
        {
        }
    }
}

在上面的代码中,streamToByteArray()Stream 对象作为参数,将该对象转换为 byte[],然后返回结果。我们创建 MemoryStream 对象 ms 来存储 input 流的内容的副本。我们使用 C# 中的 input.CopyTo(ms) 函数将 input 流的内容复制到 ms 内存流中。我们使用 ms.ToArray() 函数以数组的形式返回复制的内容。

用 C# 中的 MemoryStream.ToArray() 函数将 MemoryStream 转换为 byte[]

在上面的方法中,我们创建了一个 Memorystream,将一个 Stream 转换为一个 byte[]。如果我们有一个 MemoryStream 而不是 Stream,我们可以使用 MemoryStream.ToArray() 函数。MemoryStream.ToArray() 函数在 C# 中把 MemoryStream 的内容转换为一个字节数组。MemoryStream.ToArray() 函数的返回类型是 byte[]。下面的代码示例向我们展示了如何使用 C# 中的 MemoryStream.ToArray() 函数将 MemoryStream 转换为 byte[]

MemoryStream ms = new MemoryStream();
byte[] byteArray = ms.ToArray();

我们使用 C# 中的 ms.ToArray() 函数将 MemoryStream 对象 ms 转换为 byteArray

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Stream

相关文章 - Csharp Byte Array