将流读入另一个流的最有效方法是什么?在这种情况下,我正在尝试将文件流中的数据读入通用流.我知道我可以执行以下操作:
1.逐行读取并将数据写入流
2.读取字节块并写入流
3.等
我只是想找到最有效的方法.
谢谢
我汇总了一个快速扩展方法(所以VS 2008仅限3.5):
public static class StreamCopier
{
private const long DefaultStreamChunkSize = 0x1000;
public static void CopyTo(this Stream from, Stream to)
{
if (!from.CanRead || !to.CanWrite)
{
return;
}
var buffer = from.CanSeek
? new byte[from.Length]
: new byte[DefaultStreamChunkSize];
int read;
while ((read = from.Read(buffer, 0, buffer.Length)) > 0)
{
to.Write(buffer, 0, read);
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此可以使用它:
using (var input = File.OpenRead(@"C:\wrnpc12.txt"))
using (var output = File.OpenWrite(@"C:\wrnpc12.bak"))
{
input.CopyTo(output);
}
Run Code Online (Sandbox Code Playgroud)
您也可以略微交换逻辑并编写CopyFrom()方法.
| 归档时间: |
|
| 查看次数: |
8166 次 |
| 最近记录: |