流扩展
流扩展的类名为 StreamExtension
,是对 System.IO.Stream
的扩展。
1、分段读取
Read 方法从流对象中分段读取字节数组,readAction 是每读到一段时返回的数据。
[TestMethod]
public void TestRead()
{
using (var source = new FileStream("f:\gcd.rar", FileMode.Open))
using (var dest = new FileStream("f:\gcd_1.rar", FileMode.Create))
{
source.Read((buffer, offset, count) =>
{
dest.Write(buffer, 0, count);
});
}
}
可以指定 bufferSize 缓冲区的大小,默认为 20480。
2、写到其他流对象
WriteTo 将流内容写到另一个流对象中,它实际是简化了上面例子中读和写的步骤。
[TestMethod]
public void TestWriteTo()
{
using (var source = new FileStream("f:\gcd.rar", FileMode.Open))
using (var dest = new FileStream("f:\gcd_1.rar", FileMode.Create))
{
source.WriteTo(desc);
}
}
3、复制到内存流
CopyToMemory 将流的内容复制到一个 MemoryStream
对象中。
[TestMethod]
public void TestCopyToMemory()
{
using (var source = new FileStream("f:\gcd.rar", FileMode.Open))
using (var memory = source.CopyToMemory())
{
Console.WriteLine(memory.Length);
}
}