在 .NET 中,可以使用以下方法将一个流的内容写入另一个流:
using System;
using System.IO;
public static void CopyStream(Stream inputStream, Stream outputStream)
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
}
}
这个方法使用一个 4096 字节大小的缓冲区,将输入流中的数据逐块读取并写入输出流。当输入流中没有更多数据可读时,循环结束。
要使用此方法,只需将输入流和输出流作为参数传递给它。例如:
using System;
using System.IO;
public static void Main()
{
// 创建两个内存流
MemoryStream inputStream = new MemoryStream();
MemoryStream outputStream = new MemoryStream();
// 向输入流中写入一些数据
StreamWriter writer = new StreamWriter(inputStream);
writer.Write("Hello, world!");
writer.Flush();
// 将输入流中的数据写入输出流
CopyStream(inputStream, outputStream);
// 将输出流中的数据读回到一个字符串
outputStream.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader(outputStream);
string output = reader.ReadToEnd();
Console.WriteLine(output);
}
这个示例创建了两个内存流,向其中一个写入了一些数据,然后使用 CopyStream
方法将数据写入另一个流。最后,将输出流中的数据读回到一个字符串并输出到控制台。
领取专属 10元无门槛券
手把手带您无忧上云