C#中大文件的复制

 

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

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

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

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


 什么是流?

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


 大文件的复制

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

 C#中大文件的复制


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


 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#中大文件的复制

上一篇:WinXP 无线提示“区域中找不到无线网络”的一种可能原因!


下一篇:c# winform 中的坐标系