码迷,mamicode.com
首页 > Windows程序 > 详细

C#中大文件的复制

时间:2015-01-17 20:55:31      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:

 

 最近又学习了两个类,FileStream,这个类是做什么的呢?

 先看一下MSDN给出的官方解释

 FileStream:公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。

 小编理解:主要是以流的形式来操作文件。


 什么是流?

 在日常生活中,有车流、水流等,而正是有了流的存在,才不至于交通拥挤,洪水爆发,而是以一种流的形式慢慢的来疏通(不知能否理解)。比如,我们在操作文件复制的时候,直接复制的话,会把大容量的文件直接放到内存中,导致复制的很慢,而采取流的话,会把文件以二进制的形式,慢慢的复制,从而提高了速度。


 大文件的复制

 下面来做一个大文件的复制的联系,来熟悉下这个类的操作。

 技术分享


  整个的流程就如上图所示,通过流的形式,把二进制文件读入到缓冲区,最后在写出,就实现了文件的复制。


 Demo展示

		
		//读入大文件操作
		 static void Main(string[] args)
        {
          
            //文件流读取大文件
            using (FileStream fs = new FileStream(@"D:\软件3\Java\jdk-8u11-windows-i586.1406279697.exe", FileMode.OpenOrCreate))
            {
				//写入操作
                using (FileStream fs2 = new FileStream(@"C:\Users\ZHOU\Desktop\1.exe",FileMode.Create))
                {

                    //一次只读1M,定义缓冲区
                    byte[] buffer = new byte[1024 * 1024*5];
					//用来判断字节
                    int n = -1;
                    do
                    {
                        //返回值,实际读到的字节个数,循环向缓冲区读取文件
                        
                        n = fs.Read(buffer, 0, buffer.Length);
                        //循环写入操作
                        fs2.Write(buffer, 0, buffer.Length);
                 
                    } while (n > 0);
            
 
                }
            

            }
            
        }

 总结

 关于流的操作还有很多,有兴趣的可以在查看下MSDN.







C#中大文件的复制

标签:

原文地址:http://blog.csdn.net/luckyzhoustar/article/details/42809103

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!