当前位置:  开发笔记 > 编程语言 > 正文

将FileStream中的数据读入通用流

如何解决《将FileStream中的数据读入通用流》经验,为你挑选了2个好方法。

将流读入另一个流的最有效方法是什么?在这种情况下,我正在尝试将文件流中的数据读入通用流.我知道我可以执行以下操作:
1.逐行读取并将数据写入流
2.读取字节块并写入流
3.等

我只是想找到最有效的方法.

谢谢



1> Jeff Stong..:

斯蒂芬Toub在他的MSDN .NET事项专栏讨论流管道在这里.在文章中,他描述了一个从一个输入流复制到另一个流的CopyStream()方法.这听起来与你想要做的非常相似.



2> Jesse C. Sli..:

我汇总了一个快速扩展方法(所以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);
      }
   }
}

因此可以使用它:

 using (var input = File.OpenRead(@"C:\wrnpc12.txt"))
 using (var output = File.OpenWrite(@"C:\wrnpc12.bak"))
 {
    input.CopyTo(output);
 }

您也可以略微交换逻辑并编写CopyFrom()方法.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有