📅  最后修改于: 2023-12-03 15:26:58.736000             🧑  作者: Mango
有时候,我们需要在C#中将流转换为字节数组。在这篇文章中,我们将学习如何做到这一点,同时还将介绍一些与此相关的重要概念。
流是从输入或输出设备中读取或写入数据的一种方式。通常,它们被用于处理文件、套接字、内存等等。将流转换为字节数组通常是一个简单而快速的过程,常常被广泛地应用在各种C#应用程序中。下面是将流转换为字节数组的方法:
public static byte[] ReadFully(Stream stream)
{
byte[] buffer = new byte[8192];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
ReadFully方法读取指定流的所有字节,并将它们写入MemoryStream对象中。在这个方法的最后,它使用MemoryStream.ToArray()方法将MemoryStream对象转换为字节数组并返回。
下面是一个简单的示例程序,它演示了如何使用ReadFully方法将流转换为字节数组:
using System;
using System.IO;
class Program
{
static void Main()
{
StreamReader sr = new StreamReader("example.txt");
byte[] bytes = ReadFully(sr.BaseStream);
string str = System.Text.Encoding.Default.GetString(bytes);
Console.WriteLine(str);
}
public static byte[] ReadFully(Stream stream)
{
byte[] buffer = new byte[8192];
using(MemoryStream ms = new MemoryStream())
{
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
}
在这个例子中,我们使用了StreamReader对象来读取“example.txt”文件的内容,然后使用ReadFully方法将其作为字节数组返回,并将其转换为字符串类型。 最后,我们将其打印到控制台上。