最近又学习了两个类,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.