C#中的Stream.CopyTo方法是一种流复制技巧,它可以帮助我们在不涉及缓冲区的情况下,从一个流复制到另一个流。它支持同步和异步操作,使用起来非常简单,而且效率也较高,非常适合处理大量数据。
使用方法
Stream.CopyTo方法的使用很简单,它有以下几个重载:
- public void CopyTo(Stream destination);
- public void CopyTo(Stream destination, int bufferSize);
- public Task CopyToAsync(Stream destination);
- public Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken);
其中,第一个重载使用默认缓冲区大小,第二个重载可以指定缓冲区大小,第三个重载可以异步操作,第四个重载可以指定缓冲区大小和取消操作。
// 从一个流复制到另一个流 using (Stream source = new FileStream("source.txt", FileMode.Open)) using (Stream destination = new FileStream("destination.txt", FileMode.Create)) { source.CopyTo(destination); } // 从一个流复制到另一个流,指定缓冲区大小 using (Stream source = new FileStream("source.txt", FileMode.Open)) using (Stream destination = new FileStream("destination.txt", FileMode.Create)) { source.CopyTo(destination, 1024); } // 异步从一个流复制到另一个流 using (Stream source = new FileStream("source.txt", FileMode.Open)) using (Stream destination = new FileStream("destination.txt", FileMode.Create)) { await source.CopyToAsync(destination); } // 异步从一个流复制到另一个流,指定缓冲区大小 using (Stream source = new FileStream("source.txt", FileMode.Open)) using (Stream destination = new FileStream("destination.txt", FileMode.Create)) { await source.CopyToAsync(destination, 1024); }
以上就是,可以节省大量的开发时间,而且它的效率也很高,适合处理大量数据。