首先说下文件流为什么要在最后使用Close()与Dispose()方法,在C#程序中资源分为两类
托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象,最后有系统的垃圾回收机制进行管理和释放
非托管资源:不受CLR管理的对象,是windows内核对象,如文件、数据库连接等,需要我们手动地去释放这些资源,释放方法是去实现接口IDisposable,通过实现其方法可以释放非托管资源或者需要显示释放的托管资源,也可以说只要是继承实现这个接口的类,就需要调用Close()与Dispose()方法,但是每次使用比如文件流时都写这两个方法感觉麻烦,可以使用using关键字,被using包裹的作用域范围内的文件流最后会自动调用其方法进行资源释放
大文件拷贝代码
首先确立要读取的源文件和写入目标文件的存储路径,写入时需要选择FileMode的Create的枚举值,通过while循环将读取的文件流写入目标文件中
注意:1)读取文件前需要检测一下该文件是否存在,如果不存在就会报异常
2)行号53 写入时不再是缓冲区的长度,而是缓冲区中实际读取到文件流的长度